Hive 如何将2020年1月23日11:37:23 PM更改为ISO日期格式

Hive 如何将2020年1月23日11:37:23 PM更改为ISO日期格式,hive,hiveql,iso8601,Hive,Hiveql,Iso8601,如何将MM/DD/YYYY HH:MM:SS AM/PM更改为ISO日期格式yyy-MM-DDThh:MM:ssZ 我已经尝试了一些函数,如unix\u timestamp等。这里有一种方法: 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\'');

如何将
MM/DD/YYYY HH:MM:SS AM/PM
更改为ISO日期格式
yyy-MM-DDThh:MM:ssZ

我已经尝试了一些函数,如
unix\u timestamp
等。

这里有一种方法:

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,那么您可能应该将简单的
转换(…作为时间戳)
替换为typecast+时区转换,通过
转换为UTC\u 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)