在配置单元中,我有一些数据。现在,我想在一秒钟内将start_timestamp
转换为unix_timestamp
。怎么做?因为start_timestamp
有两种格式:
第一种格式:
2018-03-22 02:54:35
第二种格式:
May 15 2018 5:15PM
答案 0 :(得分:0)
第一种格式为'yyyy-MM-dd HH:mm:ss'
,第二种格式为'MMM dd yyyy hh:mm:aa'
。如果格式错误,则unix_timestamp
函数将返回NULL
。尝试使用一种格式进行转换,如果NULL
,请尝试使用另一种格式进行转换。可以使用coalesce
函数来完成此操作:
select
coalesce(unix_timestamp(start_timestamp ,'yyyy-MM-dd HH:mm:ss'),
unix_timestamp(start_timestamp ,'MMM dd yyyy hh:mm:aa')
) as UnixTimestamp
from my_table;
如有必要,使用from_unixtime()
将其转换回给定格式,例如answer。
在此处查看模式示例:SimpleDateFormat