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
我知道这个问题看起来很简单,它应该是一个简单的答案,但我花了一些时间解决这个问题。一些帮助将不胜感激。 我在 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