Как изменить 23.01.2020 23:37:23 в формат даты ISO - PullRequest
2 голосов
/ 19 апреля 2020

Как изменить MM/DD/YYYY HH:MM:SS AM/PM на формат даты ISO YYYY-MM-DDThh:mm:ssZ.

Я пробовал несколько функций, таких как unix_timestamp et c.

1 Ответ

2 голосов
/ 19 апреля 2020

Вот один из способов:

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)

Но, если ваш собственный часовой пояс не UT C, то вам, вероятно, следует заменить простой 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 .

...