Snowflake 如何将任何日期或日期时间值解析为 YYYY-MM-DD?

Snowflake how to parse any date or date-time values into YYYY-MM-DD?

我正在使用 Snowflake 从各种数据源获取数据,即使在某些系统中,日期和日期时间格式也不相同。

我们可能有:

2021-11-04T00:00:00.000+06:00

2021-11-04

甚至:

04/11/2021

我尝试使用以下内容:

SELECT ifnull(try_to_date('2021-11-04T00:00:00.000+06:00'), to_date('2021-11-04T00:00:00.000+06:00'))

但是当日期像04/11/2021

时它不起作用

我不想让查询变大,因为它在一个巨大的摄取脚本中,1 毫秒对我们来说很重要。

出于与我们的仓库相关的原因,是否可以将任何类型的日期和日期时间解析为 YYYY-MM-DD

你可以用COALESCE尝试不同的格式,然后第一个解析的非空值将输出日期:

select coalesce(
  try_to_date(mydate)
  , try_to_date(mydate, 'yyyy-mm-dd')
  , try_to_date(mydate, 'mm/dd/yyyy')) as parsed_dae

支持的其他说明符: