2012-07-13 4 views

답변

0

당신이 정확성을 원하는 경우 "시간"을 사용하는 것처럼 당신을 제공합니다 날짜 부분,이 방법

declare @start_date datetime, @end_Date datetime 
select @start_date='2012-05-29 08:30:00.000', @end_date='2012-05-29 15:00:00.000' 
select datediff(minute,@start_date ,@end_Date)/60.0 
+0

(DATEDIFF (분, StartDateTime, EndDateTime) /60.0)은 [Hour]로 은 10.000000이됩니다. 그리고 어떻게 그것을 10.0과 같이 나타낼 수 있습니까? –

+0

나는 그 문제를 해결한다 : cast ((DATEDIFF (분, StartDateTime, EndDateTime) /60.0) float) –

0

분의 차이를 취득하고 .. 시간에 분을 변환

0

를 사용한다 반올림 된 값. 분을 사용하면 390 분이 돌아오고 정답입니다. 그런 다음 몇 시간으로 변환하십시오.

This link이 진술로 무엇을하고 있는지 더 잘 이해하는 데 도움이 될 것입니다. DATEDIFF sintaxis and uses

샘플 코드에 너무 MSDN을 확인하십시오

DECLARE @StartDateTime DATETIME='2012-05-29 08:30:00.000' 
    DECLARE @EndDateTime DATETIME='2012-05-29 15:00:00.000' 

    SELECT DATEDIFF(MINUTE,@StartDateTime,@EndDateTime)/60.0 
0

DATEDIFF 함수는 단지 두 값 사이가 아닌 실제 시간, 지정된 단위의 교차를 계산합니다. 따라서 귀하의 경우 시간 간 "시간"교차점은 9, 10, 11, 12, 13, 14 및 15이며 총 7 시간의 교차점입니다. 따라서 정밀도를 높이려면 dateiff 함수에서 필요한 정밀도를 나타내는 시간 단위를 사용하여 시간 단위로 변환해야합니다.

1
declare @start_date datetime, @end_Date datetime 
select @start_date='2012-05-29 08:30:00.000' 
select @end_date='2012-05-29 15:00:00.000' 
select cast(DATEDIFF(MINUTE,@start_date,@end_Date)/60 as varchar) 
+'.'+CAST(DATEDIFF(MINUTE,@start_date,@end_Date)%60 as varchar) 

이, 당신은 시간과 분의 차이에서 정확한 시간을 찾기

6.30

0

코드를 원하는대로 결과 당신은 작업의 예를 다음 사용할 수 있습니다

DECLARE @STARTDATE DATETIME='2015-10-03 19:49:37.000' 
DECLARE @ENDDATE DATETIME='2015-10-05 07:31:28.000' 
DECLARE @HourOfDiff INT=CAST(datediff(minute,@STARTDATE ,@ENDDATE)/60.0 AS INT) 
DECLARE @MinofDiff INT=DATEDIFF(mi,@STARTDATE,@ENDDATE)-(@HourOfDiff*60) 
SELECT CAST(@HourOfDiff AS VARCHAR(10))+':'+ CAST(@MinofDiff AS VARCHAR(10)) 
0

을 줄 것이다 -

SELECT DATEDIFF("mi",StartDate,EndDate)/60 AS TimeInHours FROM dbo.JobData<BR> 

SELECT DATEDIFF("ss",StartDate,EndDate)/3600 AS TimeInHours FROM dbo.JobData 

시간 SQL Server는 정확하고 정확한 데이터를 생성하지 않으므로 분 또는 초 단위로 계산 한 다음 시간으로 변환하십시오.