在SQL中如何将时间转换为UNIX时间戳

时间:2018-11-02 15:49:27

标签: sql hive hiveql unix-timestamp

在配置单元中,我有一些数据。现在,我想在一秒钟内将start_timestamp转换为unix_timestamp。怎么做?因为start_timestamp有两种格式:

第一种格式:

    2018-03-22 02:54:35

第二种格式:

    May 15 2018  5:15PM

1 个答案:

答案 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