我不确定为什么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
我原本不希望看到这些时间。
答案 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小时前的所有记录,包括具有未来日期的记录(如果未来日期正确则是另一个故事......)