如何在T-SQL中测试两个日期时间是否相等(忽略它们的时间组件)?

时间:2009-09-17 10:21:01

标签: sql sql-server tsql datetime

如何测试两个日期时间(不包括它们的时间组件)是否相等?

4 个答案:

答案 0 :(得分:6)

您最好的选择是使用DATEDIFF

例如,仅比较月份:

  

SELECT DATEDIFF(月,'2005-12-31 23:59:59.9999999','2006-01-01 00:00:00.0000000');

这是进行比较并根据您对查询的确切需求确定差异的最佳方式。它甚至可以降到毫秒级。

答案 1 :(得分:2)

DATEDIFF(day, rem.DueDate , GETDATE()) = 0 

答案 2 :(得分:2)

要测试两个日期是否相等,请忽略时间组件:

SELECT DATEDIFF(day, @first, @second) = 0

要测试两次是否相等,忽略日期组件:

SELECT DATEADD(day, -DATEDIFF(day, 0, @first), @first) =
    DATEADD(day, -DATEDIFF(day, 0, @second), @second)

答案 3 :(得分:0)

这应该有效:

SELECT * FROM MyTable 
WHERE floor(convert(real,date1))=floor(convert(real,date2))