从sql中获取当前时间的最后24小时

时间:2015-03-05 18:05:57

标签: sql sql-server tsql

我不确定为什么dateadd函数在这里不起作用。我试图从目前的时间仅过去24小时,但我看到今天下午3点到6点的时间。数据类型是datetime但我不确定这里发生了什么。

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

我原本不希望看到这些时间。

1 个答案:

答案 0 :(得分:1)

使用BETWEEN,即

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

这个myDate >= DATEADD(hh, -24, GETDATE())可以获取myDate大于24小时前的所有记录,包括具有未来日期的记录(如果未来日期正确则是另一个故事......)