我有一个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()