![](/img/trans.png)
[英]SQL Server: passing string from variable into date - Conversion failed when converting date and/or time from character string
[英]Converting date and/or time from character string in SQL Server
我创建了一个视图,部分代码如下所示:
, IIF (ownedbyteamt = 'Validation'
AND (titlet LIKE '%Build validation%'
OR
titlet LIKE '%OP Build%'),
CAST(closeddatetimet AS NVARCHAR(255)), '-1111111') AS 'OP_Build_Validation'
然后,我在与表的连接中使用了这个视图,我在那里的代码如下所示:
,(
CASE
WHEN cher.[Max_OP Build Validation] <> -111111
AND cher.max_cf <> -111111
AND cher.max_cf >= cher.max_op_build _validation
THEN DATEDIFF(DAY, CONVERT(DATE, cher.max_cf), CONVERT(DATE, cher.max_op_build_validation))
ELSE '07/07/1777'
END) AS 'Days-Cf'
现在,我收到此错误:
从字符串转换日期和/或时间时转换失败。
我究竟做错了什么?
谢谢
case
表达式返回具有指定类型的单个值。
您有一个返回datediff()
的then
子句。 那是一个 integer。
您有一个返回字符串的else
子句。
当有不同的类型时,SQL Server 使用类型转换规则来弄清楚该怎么做。 在这种情况下,它会尝试将所有内容都转换为 integer - 您会收到错误消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.