【问题标题】:conversion from string to timestamp is not working从字符串到时间戳的转换不起作用
【发布时间】:2019-05-07 02:19:09
【问题描述】:

下表中的数据如下。 列作业日期数据类型为字符串。

工作日期
1536945012211.kc
1536945014231.kc
1536945312809.kc

我想将其转换为时间戳,格式为2018-12-205 06:15:10.505

我尝试了以下查询,但返回 NULL。

select jobdate,from_unixtime(unix_timestamp(substr(jobdate,1,14),'YYYY-MM-DD HH:mm:ss.SSS')) from job_log;
select jobdate,from_unixtime(unix_timestamp(jobdate,'YYYY-MM-DD HH:mm:ss.SSS')) from job_log;
select jobdate,cast(date_format(jobdate,'YYYY-MM-DD HH:mm:ss.SSS') as timestamp) from job_log;

请帮帮我。

提前致谢

【问题讨论】:

标签: hive timestamp hiveql unix-timestamp


【解决方案1】:

原始时间戳太长,请使用 10 位:

hive> select from_unixtime(cast(substr('1536945012211.kc',1,10) as int),'yyyy-MM-DD HH:mm:ss.SSS');
OK
2018-09-257 10:10:12.000
Time taken: 0.832 seconds, Fetched: 1 row(s)
hive> select from_unixtime(cast(substr('1536945012211.kc',1,10) as int),'yyyy-MM-dd HH:mm:ss.SSS');
OK
2018-09-14 10:10:12.000
Time taken: 0.061 seconds, Fetched: 1 row(s)
hive>

【讨论】:

  • 非常感谢您的回复
猜你喜欢
  • 2018-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
  • 2021-11-17
  • 2022-01-21
  • 1970-01-01
  • 2021-02-28
相关资源
最近更新 更多