【发布时间】:2020-11-05 08:17:37
【问题描述】:
我正在尝试将以下字符串转换为时间戳。但是无法弄清楚如何处理最后一个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
【问题讨论】:
-
unix_timestamp 不保留毫秒。但是已经有很多关于毫秒转换的不同时间戳格式的答案。这个想法是提取毫秒并与转换后的时间戳连接。阅读:stackoverflow.com/a/59645846/2700344 和 stackoverflow.com/a/58713989/2700344 和 stackoverflow.com/a/59842130/2700344 和 stackoverflow.com/a/59528697/2700344
标签: hadoop hive timestamp hiveql unix-timestamp