mysql select convert_tz returns null
Привет,
Днес се сблъсках с един странен проблем при конвертиране на timezone в MySQL.
Проблемът беше следния : mysql select convert_tz returns null
mysql> SELECT CONVERT_TZ('2016-11-01 18:00:00', 'Europe/London', 'UTC'); +-----------------------------------------------------------+ | CONVERT_TZ('2016-11-01 18:00:00', 'Europe/London', 'UTC') | +-----------------------------------------------------------+ | NULL | +-----------------------------------------------------------+ 1 row in set (0.00 sec)
Това го дава въпреки настроената правилно timezone-а на сървъра :
mysql> SELECT @@global.time_zone, @@session.time_zone; +--------------------+---------------------+ | @@global.time_zone | @@session.time_zone | +--------------------+---------------------+ | SYSTEM | SYSTEM | +--------------------+---------------------+ 1 row in set (0.00 sec)
Вместо NULL обаче трябва да вади валидна дата и час.
Този проблем се оправя с командата : mysql_tzinfo_to_sql , или накратко така :
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
И вече резултата от селекта изглежда така:
mysql> SELECT CONVERT_TZ('2016-11-01 18:00:00', 'Europe/London', 'UTC'); +-----------------------------------------------------------+ | CONVERT_TZ('2016-11-01 18:00:00', 'Europe/London', 'UTC') | +-----------------------------------------------------------+ | 2016-11-01 18:00:00 | +-----------------------------------------------------------+ 1 row in set (0.00 sec)
Това е!