【发布时间】:2014-12-09 21:13:34
【问题描述】:
我有一个 ETL 清理项目,其中有一个联合日期列,其中包括“2014-10-14”和“10/14/2014 12:00:00 AM”等格式。我试图找到一种巧妙的方法,我可以在 case 语句中使用 str_to_date 函数或其他方式来帮助确定它是哪种格式,然后将其转换为日期。
到目前为止,我所有的努力都失败了。有什么想法吗?
【问题讨论】:
标签: mysql case str-to-date
我有一个 ETL 清理项目,其中有一个联合日期列,其中包括“2014-10-14”和“10/14/2014 12:00:00 AM”等格式。我试图找到一种巧妙的方法,我可以在 case 语句中使用 str_to_date 函数或其他方式来帮助确定它是哪种格式,然后将其转换为日期。
到目前为止,我所有的努力都失败了。有什么想法吗?
【问题讨论】:
标签: mysql case str-to-date
如果特定转换失败,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')
)
【讨论】: