start date: 2012-05-29 08:30:00.000
end date: 2012-05-29 15:00:00.000
DATEDIFF(hour,StartDateTime,EndDateTime)
를 제공하지 않지만, 6.30DATEDIFF 기능이 나 7 시간 제공 정확한 시간 값을
가내가 그것을 어떻게 계산할 수 실제로?
start date: 2012-05-29 08:30:00.000
end date: 2012-05-29 15:00:00.000
DATEDIFF(hour,StartDateTime,EndDateTime)
를 제공하지 않지만, 6.30DATEDIFF 기능이 나 7 시간 제공 정확한 시간 값을
가내가 그것을 어떻게 계산할 수 실제로?
당신이 정확성을 원하는 경우 "시간"을 사용하는 것처럼 당신을 제공합니다 날짜 부분,이 방법
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
분의 차이를 취득하고 .. 시간에 분을 변환
를 사용한다 반올림 된 값. 분을 사용하면 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
DATEDIFF 함수는 단지 두 값 사이가 아닌 실제 시간, 지정된 단위의 교차를 계산합니다. 따라서 귀하의 경우 시간 간 "시간"교차점은 9, 10, 11, 12, 13, 14 및 15이며 총 7 시간의 교차점입니다. 따라서 정밀도를 높이려면 dateiff 함수에서 필요한 정밀도를 나타내는 시간 단위를 사용하여 시간 단위로 변환해야합니다.
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
코드를 원하는대로 결과 당신은 작업의 예를 다음 사용할 수 있습니다
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))
을 줄 것이다 -
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는 정확하고 정확한 데이터를 생성하지 않으므로 분 또는 초 단위로 계산 한 다음 시간으로 변환하십시오.
(DATEDIFF (분, StartDateTime, EndDateTime) /60.0)은 [Hour]로 은 10.000000이됩니다. 그리고 어떻게 그것을 10.0과 같이 나타낼 수 있습니까? –
나는 그 문제를 해결한다 : cast ((DATEDIFF (분, StartDateTime, EndDateTime) /60.0) float) –