我想在SQL查询中比较时间。但是,当我运行查询时,我得到零结果但我可以在表中看到应该出现的记录。
查询是这样的:
SELECT *
FROM dbo.Alarms
WHERE StartDate <= '26/08/2015'
AND StartTime <= CONVERT(varchar(5), GETDATE(), 108)
StartDate
作为YYYY-MM-DD
存储在数据库中,当我仅查询日期时它似乎工作正常。
然而,当我添加StartTime
时,事情就不起作用了。 StartTime
以24小时制格式存储该值。
什么做得不对?
由于
答案 0 :(得分:2)
使用正确的日期时间格式:
SELECT *
FROM dbo.Alarms
WHERE StartDate <= '2015-08-26' AND StartTime <= cast(GETDATE() as date)
不要将日期/时间值作为字符串进行比较。数据类型内置于该语言中。使用它们。
答案 1 :(得分:0)
我没有明确使用这种情况,但根据字段的比较方式,比较日期可能会有问题。
例如:'28/07/2015'
不小于您作为28 > 26
的开始日期。
您可以尝试将重新格式化的日期与YYYYMMDD
格式进行比较。
干杯。