首页 > 解决方案 > Oracle SQL:如果不是日期,我如何列出字段?

问题描述

Oracle SQL:如果不是日期,我如何列出字段?

从不是日期(ColC)的表中选择 colA、colB、ColC、ColD

但它给了我错误,我不知道如何改写它......

标签: sqloracle

解决方案


您可以使用Oracle Database 12.2 中引入的VALIDATE_CONVERSION函数。您可以WHERE VALIDATE_CONVERSION(...) = 0查找任何不是日期的值。

WITH
    sample_data
    AS
        (SELECT '2020-01-01' AS val FROM DUAL
         UNION ALL
         SELECT '2020-02-01' AS val FROM DUAL
         UNION ALL
         SELECT 'text' AS val FROM DUAL)
SELECT val, validate_conversion (val AS DATE, 'YYYY-MM-DD') AS isdate
  FROM sample_data;


          VAL    ISDATE
_____________ _________
2020-01-01            1
2020-02-01            1
text                  0

推荐阅读