我看了一堆有类似问题的帖子,但我被卡住了。在我的表中,我有一个数据类型为date的列。我正在尝试选择我要传递的这两个日期之间的所有行。日期值的列如下:2012-03-26。我有SQLEXPRESS版本10.0.5520.0
SELECT tblTransaction."Date"
FROM tblTransaction
where cast(tblTransaction."Date" as date) between cast('2012-03-00' as date) and cast('2012-03-28' as date)
答案 0 :(得分:1)
首先,在将数据类型与数据类型列进行比较时,不需要将字符串转换为数据。 SQL Server将为您完成。 其次,如果可能的话,使用格式'yyyymmdd hh:mm:ss',这种格式总是适用于任何文化。
tblTransaction."Date" BETWEEN '20120301' AND '20120328'
注意'20120328'
等于'20120328 00:00:00'
。如果您对20120328 23:59:59
列使用datetime
,请使用{{1}}。
答案 1 :(得分:0)
这是无效日期
cast('2012-03-00' as date)
也许你的意思是
between cast('2012-03-01' as date) and cast('2012-03-28' as date)