繁体   English   中英

在Impala中将带有AM PM的日期字符串转换为24小时时间戳

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM