【发布时间】:2017-10-23 23:21:29
【问题描述】:
SELECT AcquistionDate = CONVERT(NVARCHAR,
CASE
WHEN D.CalendarDate NOT IN ('01/01/1900','12/31/9999')
THEN D.CalendarDate
WHEN ac.FirstAccountOpenDate NOT IN ('01/01/1900', '12/31/9999')
THEN ac.FirstAccountOpenDate
END, 126) + 'Z
from TABLE;
我收到一个错误
消息 8114,第 16 级,状态 5,第 1 行
将数据类型 varchar 转换为 bigint 时出错
【问题讨论】:
-
CalendarDate 和 FirstAccountOpenDate 列的数据类型是什么?它们是实际的日期时间字段吗?此外,您的 SQL 无效,看起来像是在复制/粘贴中被截断了。
-
这个存储过程有效吗?当您说调试存储过程时,您是继承了这段代码还是编写了它?如果你继承了它,我会说找出你真正想要返回的东西并从头开始重写它。如果你是自己写的,那么请告诉我们你到底想在这里做什么。
-
我终于在SP中发现了不同行的问题。我被第 1 行的错误消息误导了。我在 SP 中有多个子查询,因为我使用子查询代替 SP 中的临时表。基本上是测试者的东西:)
标签: sql-server tsql type-conversion case sql-convert