STR_TO_DATE с часовым поясом - PullRequest
       12

STR_TO_DATE с часовым поясом

0 голосов
/ 30 апреля 2019

В моей базе данных MySQL (версия 5.7.25) есть столбец, который полон varchar(100) дат, таких как Fri May 04 08:08:42 UTC 2018.Мне нужно преобразовать их в дату.

Пока я придумал

SELECT STR_TO_DATE('Fri May 04 08:08:42 UTC 2018', '%a %b %d %T %Y') AS to_date

, но из-за часового пояса он возвращает ноль.Но если я попытаюсь:

SELECT STR_TO_DATE('Fri May 04 08:08:42 2018', '%a %b %d %T %Y') AS to_date

... это прекрасно работает.Так есть ли способ добавить часовой пояс к формату даты?

1 Ответ

1 голос
/ 30 апреля 2019

Если строка всегда содержит UTC, вы можете жестко закодировать ее:

SELECT STR_TO_DATE('Fri May 04 08:08:42 UTC 2018', '%a %b %d %T UTC %Y') AS to_date
-- 2018-05-04 08:08:42

Если вы также хотите преобразовать информацию о часовом поясе, вам нужно использовать функцию CONVERT_TZ:

SELECT CONVERT_TZ(STR_TO_DATE('Fri May 04 08:08:42 UTC 2018', '%a %b %d %T UTC %Y'), '+00:00', 'system')
-- 2018-05-04 13:08:42
-- actual result depends on system timezone
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...