1

我有一个 ETL 清理项目,其中有一个联合日期列,其中包括“2014-10-14”和“10/14/2014 12:00:00 AM”等格式。我试图找到一种巧妙的方法,我可以在 case 语句中使用 str_to_date 函数或其他方式来帮助确定它是哪种格式,然后将其转换为日期。

到目前为止,我所有的努力都失败了。有什么想法吗?

4

1 回答 1

1

str_to_date如果特定转换失败,将返回NULL,因此您可以先尝试做一个。如果结果是NULL,请尝试其他格式。

例如:

coalesce(
  str_to_date(create_date, '%Y-%m-%d'),
  str_to_date(create_date, '%m/%d/%Y %h:%i:%s %p'),
  str_to_date(create_date, '%d/%b/%Y %H:%i:%s')
)
于 2014-10-14T22:46:36.110 回答