8

I am trying to convert UTC time into the users local time, it works fine until I try to convert the time to +14:00 timezone, the result is always null, anyone has idea? Here is my code:

select CONVERT_TZ(now(), '+00:00', '+14:00')
Barmar
  • 741,623
  • 53
  • 500
  • 612
Lu Shi
  • 93
  • 1
  • 5

2 Answers2

5

This is a known bug in MySQL:

MySQL does not recognize timezone offset UTC +14:00

Barmar
  • 741,623
  • 53
  • 500
  • 612
1

You can fix that, by using timezone name instead of offset. UTC +14:00 equals to Pacific/Kiritimati timezone. So if You modify query to:

SELECT CONVERT_TZ(NOW(), '+00:00', 'Pacific/Kiritimati')

or

SELECT CONVERT_TZ(NOW(), 'UTC', 'Pacific/Kiritimati')

then You'll get valid date, not NULL.

BUT there is one condition. Your MySQL engine needs timezones list. If above queries still returns NULL, it means You don't have timezones list loaded into Your MySQL engine.

Probably You'll have to run also this command:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

Plese check this thread for more information, about loading timezones list: convert_tz returns null

Tested on MySQL 5.6.36.

instead
  • 3,101
  • 2
  • 26
  • 35