[英]Convert date string with AM PM to 24 Hour timestamp in Impala
我正在尝试将AM / PM的日期字符串转换为impala中的时间戳以检查数据转换。 我的日期字符串如下:
10/07/2017 02:04:01.575000000 PM
我试图通过以下查询在Impala中进行转换:
从表中选择_unixtime(unix_timestamp((Y_date),“ MM / dd / yyyy HH:mm:ss.SSSSSSSSS'ZZ'”),“ yyyy-MM-dd HH:mm:ss.SSSSSS'ZZ'”)
我得到的结果是2017-10-07 02:04:01.000000。
我仅丢失AM / PM,但是小时部分“ 02”未转换为时间戳值“ 14”。 我需要得到以下结果:
2017-10-07 14:04:01.000000
我使用Impala作为查询Hadoop的界面。
任何输入都会有所帮助。
谢谢,
维舒
尚未为此找到内置函数。 要做一个效率低下的双重查询,为PM增加12个小时:
SELECT cast(unix_timestamp(Y_date , "dd/MM/yyyy HH:mm:ss") + 43200 as timestamp) as
FROM table_a
where instr(`datetime`,'PM') > 0
union
SELECT cast(unix_timestamp(Y_date , "dd/MM/yyyy HH:mm:ss") as timestamp) as action_time
FROM table_a
where instr(`datetime`,'AM') > 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.