我需要一些关于基于值的BigQuery数据格式设置的帮助。源数据具有字符串数据类型,目标数据类型为日期。我需要根据输入日期的值将其格式化如下:

g 210
以下是我迄今所做的工作:
SELECT input_date, CASE WHEN input_date = '' THEN NULL ELSE PARSE_DATE('%m/%d/%Y', input_date) END AS output_date FROM mytable当尝试用YYYY DD格式解析日期时,上述case语句失败.下面是我遇到的错误:

如何解决YYYY DD日期格式?如有任何反馈,将不胜感激。
发布于 2022-10-12 22:36:31
您可以尝试并考虑以下方法,其中需要添加另一个WHEN,然后使用regex匹配YYYY-MM-DD字符串,然后将其解析为所需的日期格式,如下所示。
with sample_data as (
select NULL as input_date,
union all select '' as input_date,
union all select '2022-05-21' as input_date,
union all select '05/25/2022' as input_date
)
SELECT input_date,
CASE WHEN input_date = '' THEN NULL
WHEN REGEXP_CONTAINS(input_date, r'^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$') THEN PARSE_DATE('%F', input_date)
ELSE PARSE_DATE('%m/%d/%Y', input_date) END AS output_date FROM sample_data输出:

发布于 2022-10-12 22:42:09
请考虑以下查询:
WITH sample_data AS (
SELECT * FROM UNNEST(['', null, '2022-05-21', '05/25/2022']) input_date
)
SELECT *,
COALESCE(SAFE.PARSE_DATE('%m/%d/%Y', input_date), SAFE.PARSE_DATE('%F', input_date)) output_date
FROM sample_data;输出结果

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