首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >简单的DateTime sql查询

简单的DateTime sql查询
EN

Stack Overflow用户
提问于 2011-05-25 11:57:07
回答 7查看 546.1K关注 0票数 89

如何查询一定范围内的DateTime数据库字段?

我正在使用SQL SERVER 2005。

错误码如下

代码语言:javascript
复制
SELECT * 
  FROM TABLENAME 
 WHERE DateTime >= 12/04/2011 12:00:00 AM 
   AND DateTime <= 25/05/2011 3:53:04 AM

请注意,我需要获取特定时间范围内的行。例如,10分钟的时间范围。

当前SQL返回‘12’附近不正确的语法。“

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-05-25 12:00:16

您漏掉了单引号:

代码语言:javascript
复制
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,因为此格式不依赖于服务器的本地区域性。

代码语言:javascript
复制
SELECT *
FROM TABLENAME 
WHERE 
    DateTime >= '2011-04-12T00:00:00.000' AND 
    DateTime <= '2011-05-25T03:53:04.000'
票数 125
EN

Stack Overflow用户

发布于 2011-05-25 12:01:27

您需要用引号将试图冒充为日期的字符串括起来,您还可以在这里使用BETWEEN:

代码语言:javascript
复制
 SELECT *
   FROM TABLENAME
  WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'

有关如何在指定格式的同时将字符串显式转换为日期的示例,请参阅以下问题的答案:

Sql Server string to date conversion

票数 9
EN

Stack Overflow用户

发布于 2013-09-15 07:27:28

这对我来说在SQL Server 2005和2008中都有效:

代码语言:javascript
复制
SELECT * from TABLE
WHERE FIELDNAME > {ts '2013-02-01 15:00:00.001'}
  AND FIELDNAME < {ts '2013-08-05 00:00:00.000'}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6119369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档