找出2个日期时间之间的时间差,忽略日期部分

时间:2013-02-13 20:25:52

标签: sql sql-server-2008

我只需要拍摄两个日期时间对象,减去它们以获得以小时为单位的时差。我不关心计算中的日期部分。如果您有1/1/02 11:00:00 - 1/1/02 9:00:00那么我会得到2作为结果。如果差异为30或更大,则舍入为1.我正在使用的时间对象是当前时间和包含其他日期时间对象的列。

2 个答案:

答案 0 :(得分:2)

在SQL Server 2008中,您可以使用TIME数据类型:

SELECT ABS(ROUND(DATEDIFF(MI,CONVERT(TIME,date1), CONVERT(TIME,date2))/60.0,0))

答案 1 :(得分:0)

如果时间问题很重要,请使用:

SELECT DATEDIFF(hour, <date1>, <date2>) % 24...

或者如果您只想要绝对时差:

SELECT ABS(DATEDIFF(hour, <date1>, <date2>) % 24)...