如何在一定范围内查询DateTime数据库字段?
我使用的是SQL SERVER 2005
错误代码如下
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
请注意,我需要获得一定时间范围内的行。 例如,10分钟的时间范围。
目前SQL在'12'."附近有不正确的语法返回。
你错过了单引号。
SELECT *
FROM TABLENAME
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
另外,建议使用ISO8601格式YYYY-MM-DDThh:mm:ss.nnn[ Z ],因为这个格式不取决于你的服务器'的当地文化。
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2011-05-25T03:53:04.000'
你需要在你试图冒充日期的字符串周围加上引号,你也可以在这里使用BETWEEN。
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
关于如何在指定格式的同时将字符串明确转换为日期的例子,请参见以下问题的答案。
https://stackoverflow.com/questions/207190/sql-server-string-to-date-conversion