2014-10-11 63 views
2

我有一个start_dateend_date。我想获取这两个日期之间的数据列表。 任何人都可以帮助我指出我的查询中的错误。查询选择两个日期之间的数据

select * from [dbo].[User] 
where Date between'2014-8-01' AND '2014-8-30' 

没有错误,但查询也不返回任何记录。

+0

嗯,我想通过between'后'加空格,并使用全'YYYY-MM-dd'格式,即'08',而不是'8'月开始。我意识到这是不太可能做出不同的,但试着从头开始。 “日期”字段的类型是什么? – 2014-10-11 07:48:42

+0

它是日期时间字段 – 2014-10-11 07:53:28

回答

2

正确的铸造需要

select * from [dbo].[User] 
    where CAST([Date] as DATE) between '2014-08-01' AND '2014-08-30' 

格式传递日期为参数

'yyyy-MM-dd' 
+0

大概只有当'日期'不是正确的类型...我已经要求OP澄清。 – 2014-10-11 07:48:59

+0

谢谢你的回答我的问题 – 2014-10-11 07:52:11

1

最好使用> =和<和你的where子句中,而不是在使用CAST的使用时间。更好的性能。

SELECT * FROM [dbo].[User] 
    WHERE [Date] >= '2014-8-01 00:00:00' 
    AND [Date] < '2014-8-31 00:00:00' 
相关问题