我有一列包含一个人被拒绝的原因。该值可能是“拒绝的人”或“2012 年 10 月 18 日”
我正在尝试设置我的查询以检查该值是否为日期,然后它可以在其位置放置一个空格。否则,请保留其中的文本。
我设置的查询是:
SELECT DISTINCT person_id,
CASE description
WHEN ISDATE(description) THEN ''
END AS refuseReason
FROM person
但这会返回错误。如果日期本身保存为 VARCHAR,那么我是否必须先将它们转换为日期,然后检查 ISDATE?如果我这样做了,它会在遇到文本时转换文本吗?
编辑:我通过将其转换为日期时间来尝试它,并且我也不断收到错误:
SELECT DISTINCT person_id,
CASE description
WHEN ISDATE(CAST(OBSVALUE AS DATETIME)) THEN ''
END AS refuseReason
FROM person