HIVE SQL 将 (UTC) 2018-06-19T14:01:17.000000 转换为时间戳 ('MM/dd/yyyy HH:mm:ss' )

HIVE SQL Convert (UTC) 2018-06-19T14:01:17.000000 to timestamp ('MM/dd/yyyy HH:mm:ss' )

我知道这个问题看起来很简单,它应该是一个简单的答案,但我花了一些时间解决这个问题。一些帮助将不胜感激。 我在 HUE Hive 上使用 SQL。

TO_DATE(col) 工作正常,但只有 returns 日期,但不是时间。 据我了解,原始格式是 UTC 字符串

我相信代码应该是这样的,我可能放错了字段。

from_unixtime(unix_timestamp(column_name, 'yyyy-MM-dd HH:mm:ss.S'), 'yyyy-MM-dd')

结果我得到 NULL 而不是期望的:'yyyy-MM-dd HH:mm:ss'

您需要在 unix_timestamp 转换中匹配 T

Try with this syntax:

hive> select from_unixtime(unix_timestamp("2018-06-19T14:01:17.000000", "yyyy-MM-dd'T'HH:mm:ss.SSSSSS"), 'yyyy-MM-dd HH:mm:ss');

(或)

hive> select timestamp(from_unixtime(unix_timestamp("2018-06-19T14:01:17.000000", "yyyy-MM-dd'T'HH:mm:ss"), 'yyyy-MM-dd HH:mm:ss')); --casting to timestamp

Result:

2018-06-19 14:01:17