MySQL CONVERT TZ () возвращает null, когда один из аргументов " +14:00"

Я пытаюсь преобразовать время UTC в локальное время пользователей, он работает нормально, пока я не попытаюсь преобразовать время в часовой пояс +14:00, результат всегда равен нулю, у кого-нибудь есть идея? Вот мой код:

select CONVERT_TZ(now(), '+00:00', '+14:00')

2 ответов



вы можете исправить это, используя имя часового пояса вместо смещения. UTC +14:00 равна Pacific/Kiritimati часовой пояс. Поэтому, если вы измените запрос на:

select CONVERT_TZ(now(), '+00:00', 'Pacific/Kiritimati')

или

select CONVERT_TZ(now(), 'UTC', 'Pacific/Kiritimati')

затем вы получите действительную дату, а не NULL.

но есть одно условие. Вашему движку MySQL нужен список часовых поясов. Если вышеуказанные запросы все еще возвращают NULL, это означает, что у вас нет списка часовых поясов, загруженного в ваш движок MySQL.

пожалуйста, проверьте эту тему для получения дополнительной информации, как это исправить: convert_tz возвращает null

проверен в MySQL 5.6.36.