我该怎么改变 MM/DD/YYYY HH:MM:SS AM/PM 到iso日期格式 YYYY-MM-DDThh:mm:ssZ .我试过几个函数,比如 unix_timestamp 等。
MM/DD/YYYY HH:MM:SS AM/PM
YYYY-MM-DDThh:mm:ssZ
unix_timestamp
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() :
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)
有关详细信息,请参阅配置单元语言手册。
1条答案
按热度按时间elcex8rz1#
有一种方法:
但是,如果您自己的时区不是utc,那么您可能应该替换为simple
cast(... as timestamp)
通过typecast+时区转换to_utc_timestamp()
:有关详细信息,请参阅配置单元语言手册。