从 sql 中的当前时间获取过去 24 小时

Getting last 24 hours from current time in sql

我不确定为什么 dateadd 函数在这里不起作用。我试图只从当前时间拉出最后 24 小时,但我看到像今天下午 3-6 点这样的时间。数据类型是日期时间,但我不确定这里发生了什么。

select Name, location, myDate from myTable where myDate >= DATEADD(hh, -24, GETDATE())

当我 运行 结果上方的查询将包括:

2015-03-05 15:00:00.000
2015-03-05 15:30:00.000
2015-03-05 16:00:00.000
2015-03-05 16:30:00.000
2015-03-05 17:00:00.000
2015-03-05 17:30:00.000
2015-03-05 18:00:00.000
2015-03-05 18:30:00.000
2015-03-05 19:00:00.000
2015-03-05 19:30:00.000
2015-03-05 20:00:00.000
2015-03-05 20:30:00.000
2015-03-05 21:00:00.000
2015-03-05 21:30:00.000
2015-03-05 22:00:00.000
2015-03-05 22:30:00.000
2015-03-05 23:00:00.000
2015-03-05 23:30:00.000

我原以为根本看不到这些时间。

使用BETWEEN,即

select Name, location, myDate from myTable where myDate between DATEADD(hh, -24, GETDATE()) and GETDATE()

myDate >= DATEADD(hh, -24, GETDATE()) 为您提供 myDate 大于 24 小时前的所有记录,包括具有未来日期的记录(如果它们具有未来日期是正确的则另当别论...)