配置单元unix\u timestamp无法识别12:07和00:07之间的差异,并为两者返回相同的unix时间戳

yshpjwxd  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(328)

hive to_unix_timestamp() 函数无法识别24小时格式,在12小时和0小时两种情况下返回相同的值。
下面的查询示例:

select to_unix_timestamp( '2019-01-22T12:07:00.000+0000',"yyyy-MM-dd'T'hh:mm:ss.SSSZ") 12thhour,to_unix_timestamp( '2019-01-22T00:07:00.000+0000',"yyyy-MM-dd'T'hh:mm:ss.SSSZ") zerohour;

12thhour          zerohour
1548115620        1548115620

select to_unix_timestamp( '2019-01-22T12:07:00',"yyyy-MM-dd'T'hh:mm:ss") as 12thhour ,to_unix_timestamp( '2019-01-22T00:07:00',"yyyy-MM-dd'T'hh:mm:ss") as Zerohour ;

12thhour          zerohour
1548112020       1548112020
6tqwzwtp

6tqwzwtp1#

使用 'HH' 24小时格式的模板。小写 'hh' 是12小时。
测试24小时格式:

hive>  select unix_timestamp( '2019-01-22T12:07:00.000+0000',"yyyy-MM-dd'T'HH:mm:ss.SSSZ"), unix_timestamp( '2019-01-22T00:07:00.000+0000',"yyyy-MM-dd'T'HH:mm:ss.SSSZ") zerohour;
OK
1548158820      1548115620

测试12小时格式:

hive>  select unix_timestamp( '2019-01-22T12:07:00.000+0000',"yyyy-MM-dd'T'hh:mm:ss.SSSZ"), unix_timestamp( '2019-01-22T00:07:00.000+0000',"yyyy-MM-dd'T'hh:mm:ss.SSSZ") zerohour;
OK
1548115620      1548115620

阅读这里的模式:simpledateformat

相关问题