【问题标题】:What is the difference between StartDate > DateAdd(dd,-1,@EndDate) and StartDate >=@EndDate?StartDate > DateAdd(dd,-1,@EndDate) 和 StartDate >=@EndDate 有什么区别?
【发布时间】:2017-05-10 19:05:26
【问题描述】:

这有什么区别

StartDate > DateAdd(dd,-1,@EndDate)

还有这个

StartDate >=@EndDate

【问题讨论】:

  • 没有区别吗?你为什么这么问?

标签: sql sql-server


【解决方案1】:

它们是相同的如果 StartDateEndDate 具有 date 数据类型。

如果它们是时间组件,那么逻辑是不同的。

考虑:

EndDate    2017-05-09 11:00:00

然后第一个得到一切之后 2017-05-08 11:00:00。

第二个在 2017 年 5 月 9 日 11:00:00或之后获得一切。显然,这些是不同的。

我还应该补充一点:使用日期部分时,请拼出日期部分的全名。所以用这个:

StartDate > DateAdd(day, -1, @EndDate)

而不是使用dd。这使代码更易于阅读。它还可以防止缩写问题。 mm 是几分钟还是几个月? ms 是毫秒还是微秒?何必费心去回忆呢?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多