我是个初学者。
我正在处理下面的查询,但它工作得不太好。有人能帮我吗?
这是原始数据。

我只想把'11/27/2021‘等过时的东西从这里拿出来。不是“100克”也不是零。
数据类型是字符串。
我的疑问是。
SELECT
CASE WHEN
date = 'm/%d/%Y' then PARSE_DATE("%Y/%m/%d", expiry_date)
Else null
end as date,
FROM
my_database我期待着你的建议。祝你今天愉快!
发布于 2021-11-26 23:46:04
考虑以下几个选项
select safe.parse_date('%m/%d/%y', date) as date
from my_database 或
select
case
when regexp_contains(date, r'\d{1,2}/\d{1,2}/\d{2}') then parse_date('%m/%d/%y', date)
else null
end as date
from my_database 我建议第一个选项,但两者返回相同的输出。
您可以使用虚拟数据进行测试。
with my_database as (
select '11/27/21' as date union all
select '100m' union all
select '' union all
select null union all
select '12/4/21' union all
select '120g'
) 输出是

https://stackoverflow.com/questions/70130891
复制相似问题