如何将MM/DD/YYYY HH:MM:SS AM/PM
更改为ISO日期格式YYYY-MM-DDThh:mm:ssZ
。
我尝试了unix_timestamp
等几个函数。
答案 0 :(得分:2)
这是一种方法:
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,则可能应该通过cast(... as timestamp)
将简单的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)
有关详细信息,请参见Hive Language Manual。