繁体   English   中英

从 SQL 服务器中的字符串转换日期和/或时间

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM