我有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!
非常感谢你!
答案 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()