CASE CONVERT将NULL值设置为1/1/1900 SQL Sybase



我有一个END_DATE为CHAR(8)的表。END_DATE=此格式的某个日期(2013年12月31日)或"或"//"值。

如何在END_DATE上运行大于到当前日期?

示例:

SELECT RES_CODE, END_DATE 
FROM RES_DEFS
WHERE CONVERT(DATETIME, CASE ISDATE(END_DATE) WHEN 1 THEN END_DATE ELSE '12/31/2099' END) > GETDATE()

此where语句排除空值(the ' ' values).。这些值表示没有END_DATE,应设置为未来日期,但此转换会将它们发送回1900!

提前非常感谢!

我已经明白了:

SELECT RES_CODE, END_DATE FROM RES_DEFS WHERE (CASE WHEN END_DATE= '' THEN '12/31/2099' WHEN ISDATE(END_DATE) = 1 then END_DATE else '12/31/2099' END) > GETDATE()

最新更新