在apache hive中将“2017-10-31 20:42:00”字符串转换为时间戳

mu0hgdu0  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(329)

我最近上传了一个csv文件到apachehive表中,这个文件有3列带有时间戳

start_time,end_time,last_updated
"2017-10-23 11:07:00","2017-10-31 20:27:02","2017-10-31 20:27:02"
"2017-10-17 09:54:00","2017-10-23 10:51:02","2017-10-23 10:51:02"

一旦我将同一个文件上传到apachehive,它就会将所有这些列作为字符串,并且我尝试将这些列作为timestamp数据类型,但是值变为null。
我也尝试过做类型铸造,但没有帮助!
我真的想让它们成为时间戳。
点击这里的类型铸造,我已经经历了。

6l7fqoea

6l7fqoea1#

使用 unix_timestamp 把它扔给 bigint ```
select
cast(
unix_timestamp("2017-10-23 11:07:00","yyyy-MM-dd HH:mm:ss") as bigint
)

退货 `1508782020` . 当你想把它转换成日期使用 `select from_unixtime(1508782020, 'yyyy-MM-dd HH:mm:ss')` 退货 `2017-10-23 11:07:00` 

相关问题