如何查询一定范围内的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’附近不正确的语法。“
发布于 2011-05-25 12:00:16
您漏掉了单引号:
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'
发布于 2011-05-25 12:01:27
您需要用引号将试图冒充为日期的字符串括起来,您还可以在这里使用BETWEEN:
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
有关如何在指定格式的同时将字符串显式转换为日期的示例,请参阅以下问题的答案:
发布于 2013-09-15 07:27:28
这对我来说在SQL Server 2005和2008中都有效:
SELECT * from TABLE
WHERE FIELDNAME > {ts '2013-02-01 15:00:00.001'}
AND FIELDNAME < {ts '2013-08-05 00:00:00.000'}
https://stackoverflow.com/questions/6119369
复制相似问题