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

时间:2015-02-09 19:11:13

标签: date null sybase

我有1个表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!

非常感谢你!

1 个答案:

答案 0 :(得分:0)

我已经弄清楚了:

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()