Sql 查询以选择两个日期之间的数据

Sql 查询以选择两个日期之间的数据,sql,sql-server,tsql,date-range,Sql,Sql Server,Tsql,Date Range,我有一个开始日期和结束日期。我想得到这两个日期之间的数据列表。 谁能帮我指出问题中的错误 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' 日期作为

我有一个
开始日期
结束日期
。我想得到这两个日期之间的数据列表。 谁能帮我指出问题中的错误

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'

最好在where子句中使用>=和<,并使用时间,而不是在where中使用强制转换。更好的性能

SELECT * FROM [dbo].[User] 
    WHERE [Date] >= '2014-8-01 00:00:00'
    AND [Date] < '2014-8-31 00:00:00'
SELECT*FROM[dbo].[User]
其中[日期]>=“2014-8-01 00:00:00”
和[日期]<'2014-8-31 00:00:00'

首先,我会在
之后的
之间添加一个空格,并使用完整的
yyyy-MM-dd
格式,即
08
而不是
8
。我意识到这不太可能带来不同,但试着从这开始。
Date
字段的类型是什么?大概只有当
Date
不是正确的类型时。。。我已经要求OP澄清。