StartDate>之间的区别是什么? DateAdd(dd,-1,@ EndDate)和StartDate> = @ EndDate?

时间:2017-05-10 10:57:30

标签: sql sql-server

这个

有什么区别
StartDate > DateAdd(dd,-1,@EndDate)

和这个

StartDate >=@EndDate

1 个答案:

答案 0 :(得分:2)

如果 StartDateEndDate的数据类型为date,则相同

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

考虑:

EndDate    2017-05-09 11:00:00

然后第一个在 2017-05-08 11:00:00之后获取所有

第二个 2017-05-09 11:00:00之后或之后获取所有内容。显然,这些是不同的。

我还应该添加:使用日期部分时,拼出日期部分的全名。所以使用这个:

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

而不是使用dd。这使代码更容易阅读。它还可以防止缩写问题。是mm几分钟或几个月? ms是毫秒还是微秒?为什么要费心去记住?