蜂巢将字符串转换为时间戳会丢弃毫秒信息

时间:2020-07-15 18:30:32

标签: hadoop hive timestamp hiveql unix-timestamp

我正在尝试将以下字符串转换为时间戳。但是无法弄清楚如何处理最后milisecond part

字符串:

2020-06-30T23:57:48.000-0400

以下工作正常。无论如何,它都会丢失毫秒的信息。

hive> select from_unixtime(unix_timestamp("2020-06-30T23:57:48.000-0400", "yyyy-MM-dd'T'HH:mm:ss.SSS'-'SSS"), "yyyy-MM-dd'T'HH:mm:ss.SSS'-'SSSS");
OK
2020-06-30T23:57:48.000-0000

期望值

2020-06-30T23:57:48.000-0400

更新

即使这不起作用

查询

hive> select date_format("2020-01-23 23:59:54.0000400", "yyyy-MM-dd HH:mm:ss.SSSSSSS");

输出

2020-01-23 23:59:54.0000000

1 个答案:

答案 0 :(得分:0)

尝试一下-

选择 concat(from_unixtime(unix_timesstamp('2020-01-23 23:59:54.0000400','yyyy-MM-dd HH:mm:ss')),'。',split('2020-01-23 23:59: 54.0000400','[。]')[1]);

我希望这会有所帮助。