我有一个start_date
和end_date
。我想获取这两个日期之间的数据列表。 任何人都可以帮助我指出我的查询中的错误。查询选择两个日期之间的数据
select * from [dbo].[User]
where Date between'2014-8-01' AND '2014-8-30'
没有错误,但查询也不返回任何记录。
我有一个start_date
和end_date
。我想获取这两个日期之间的数据列表。 任何人都可以帮助我指出我的查询中的错误。查询选择两个日期之间的数据
select * from [dbo].[User]
where Date between'2014-8-01' AND '2014-8-30'
没有错误,但查询也不返回任何记录。
正确的铸造需要
select * from [dbo].[User]
where CAST([Date] as DATE) between '2014-08-01' AND '2014-08-30'
格式传递日期为参数
'yyyy-MM-dd'
大概只有当'日期'不是正确的类型...我已经要求OP澄清。 – 2014-10-11 07:48:59
谢谢你的回答我的问题 – 2014-10-11 07:52:11
最好使用> =和<和你的where子句中,而不是在使用CAST的使用时间。更好的性能。
SELECT * FROM [dbo].[User]
WHERE [Date] >= '2014-8-01 00:00:00'
AND [Date] < '2014-8-31 00:00:00'
嗯,我想通过between'后'加空格,并使用全'YYYY-MM-dd'格式,即'08',而不是'8'月开始。我意识到这是不太可能做出不同的,但试着从头开始。 “日期”字段的类型是什么? – 2014-10-11 07:48:42
它是日期时间字段 – 2014-10-11 07:53:28