TSQL日期条件

Dak*_*aku 2 sql t-sql select

我有一个事件表,不断更新,有一个日期时间列.

我希望得到今天开始的所有活动以及第二天开始8小时的活动.

这个想法是人们不会在半夜检查事件,所以我们在前一天列出它们.

为了得到今天我做的,DATEDIFF(day,eventdate,GETDATE())=0但我没有想出如何做the dateadd()我的情况.我要么没有行也没有太多.

所以想要的结果是:

From 00:00 on March 9 to 8:00 on March 10. (仅限示例)

Mik*_*son 7

这是更好地不是做你列的任何计算.改为计算间隔并获取间隔中的行.这样您就可以使用索引eventdate而不是进行表扫描.

select SomeColumns
from YourTable
where eventdate >= dateadd(day, datediff(day, 0, getdate()), 0) and
      eventdate < dateadd(hour, 32, dateadd(day, datediff(day, 0, getdate()), 0))  
Run Code Online (Sandbox Code Playgroud)