【问题标题】:hive converting string to timestamp drops millisecond information将字符串转换为时间戳的配置单元会丢弃毫秒信息
【发布时间】: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

【问题讨论】:

标签: hadoop hive timestamp hiveql unix-timestamp


【解决方案1】:

试试这个 -

选择 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]);

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2016-08-01
    • 2021-05-07
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 2017-10-11
    • 1970-01-01
    相关资源
    最近更新 更多