如何将01/23/2020 11:37:23 pm更改为iso日期格式

yqhsw0fo  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(447)

我该怎么改变 MM/DD/YYYY HH:MM:SS AM/PM 到iso日期格式 YYYY-MM-DDThh:mm:ssZ .
我试过几个函数,比如 unix_timestamp 等。

elcex8rz

elcex8rz1#

有一种方法:

beeline> select date_format(cast(unix_timestamp('04/19/2020 09:30:59 AM','MM/dd/yyyy HH:mm:ss a')*1000 as timestamp),'yyyy-MM-dd\'T\'HH:mm:ss\'Z\'');

+-----------------------+
|          _c0          |
+-----------------------+
| 2020-04-19T09:30:59Z  |
+-----------------------+
1 row selected (0.255 seconds)

但是,如果您自己的时区不是utc,那么您可能应该替换为simple cast(... as timestamp) 通过typecast+时区转换 to_utc_timestamp() :

beeline> select date_format(to_utc_timestamp(unix_timestamp('04/19/2020 09:30:59 AM','MM/dd/yyyy HH:mm:ss a')*1000,'EST'),'yyyy-MM-dd\'T\'HH:mm:ss\'Z\'');

+-----------------------+
|          _c0          |
+-----------------------+
| 2020-04-19T14:30:59Z  |
+-----------------------+
1 row selected (0.236 seconds)

有关详细信息,请参阅配置单元语言手册。

相关问题