消息241,级别16,状态1,行6转换从字符串转换日期和/或时间时失败

时间:2015-02-04 06:44:40

标签: sql

我看了一堆有类似问题的帖子,但我被卡住了。在我的表中,我有一个数据类型为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)

2 个答案:

答案 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)