以不同方式比较日期时间值

时间:2012-05-17 12:32:50

标签: sql sql-server-2008

好的,我觉得我对SQL非常好......我必须在两个日期时间列之间进行比较。

有人可以解释

之间的区别
DateA > DateB

DateDiff(d,DateB,DateA) >= 1

我认为这两个陈述在功能上是等价的,但我想我错了......

4 个答案:

答案 0 :(得分:4)

DateA > DateB

检查DateA是否大于DateB(01/12/2012 14:50:01大于01/12/2012 14:50:00)。


DateDiff(d,DateB,DateA) >= 1

检查天数(datepart d作为第一个参数)是否等于或大于1天。

答案 1 :(得分:2)

如果DateA至少比DateB

大一毫秒,

DateA > DateB将评估为true 如果DateB和DateA之间的差异至少为一天,

DateDiff(d,DateB,DateA) >= 1将评估为真

换句话说,如果您认为今天的12:00比今天的11:00更大,请选择一个

如果您认为日期在午夜之后比另一个更大,请选择选项二

答案 2 :(得分:1)

DateA如果是1分钟或1秒或1毫秒后,则大于DateB

您的DateDiff正在寻找一整天的差异。

无论您是否打算,DateTime总是包含时间,因此您必须考虑到这一点。

答案 3 :(得分:1)

如果DateA > DateB甚至小于大于DateA(例如1毫秒),则

DateB将为真。

如果日期之间的差异是一天或更长,

DateDiff(d,DateB,DateA) >= 1将成立。