我正在运行一个 Snowflake 查询,该查询旨在返回日期早于当前日期的记录。
select *
from table_a
where id < 100 and
date < ???
问题是,运行此查询的数据在日期列中存在问题。例如,一个值可能是单个数字(如2
)。我不希望查询在这些行上中断。这就是为什么我希望case
在where
子句中写一个只考虑日期为YYYY-MM-DD
. 我尝试了以下方法,但它返回语法错误:
and date = case WHEN date like '____-__-__' then date < current_date() else NULL
还
and date < case WHEN date like '____-__-__' then current_date() else NULL
(如果由于格式原因它不可见,即 4 个下划线 - 表示任何字符,后跟一个破折号,然后是 2 个下划线,然后是一个破折号,然后是另外两个下划线。)
你可以假设current_date()
没有问题。如果需要,它甚至可以用一些硬编码的值替换。
我该如何编写这个查询?