我有两个日期,我需要与小时的差异
2014-03-25 00:00:00.000
我们将此字段称为A
2014-03-24 16:14:00.000
- (这是添加小时和分钟的计算日期)这将是fieldB
我做了
DateDiff(hh,FieldA,FieldB)
它返回-8。
我希望它能恢复前一天的小时数。
当我跑2014-03-25 16:29:00.000和2014-03-25 00:00:00.000我得到16个小时,这是正确的
答案 0 :(得分:2)
投入时间并仅对时间值进行约会。
declare @D1 datetime
declare @D2 datetime
set @D1 = '2014-03-25 00:00:00.000'
set @D2 = '2014-03-24 16:14:00.000'
select datediff(hour, cast(@D1 as time(0)), cast(@D2 as time(0)))
结果:
16
SQL Server 2005
select datediff(hour, dateadd(day, -datediff(day, 0, @D1), @D1), dateadd(day, -datediff(day, 0, @D2), @D2))
答案 1 :(得分:2)
如果您只是想要时间差异,请考虑以下事项:
DECLARE @d1 datetime = '2014-03-25 00:00:00.000'
DECLARE @d2 datetime = '2014-03-24 16:14:00.000'
SELECT DATEDIFF(hh, DATEADD(d, DATEDIFF(d, @d1, @d2), @d1), @d2)