【发布时间】:2014-07-29 09:41:06
【问题描述】:
我有以下查询:
declare @migdate as varchar(10)
set @migdate = 20140501
SELECT ID, (CASE WHEN a.HD ='abc'
THEN DATEADD(YEAR,1,a.LTST_DATE)
ELSE
CASE WHEN DATEDIFF(MONTH,a.LTST_DATE,@MIGDATE) > 0
THEN DATEADD(MONTH,DATEDIFF(MONTH,a.LTST_DATE,@MIGDATE)+1,a.LTST_DATE)
ELSE '99991231'
END
END) AS NEXT_CHARGE_DATE
from table a
注意:表中的 LTST_date 也是 varchar。
我遇到错误
Conversion failed when converting date and/or time from character string.
我在这里做错了吗?
【问题讨论】:
-
您检查过
LTST_date的值是否格式错误,例如像“20141305”这样的值? -
LTST_DATE 值是否都是有效日期?
标签: sql sql-server-2008