Как конвертировать дату UTC в местное время в MySql Выберите запрос

Я использую это условие Где в одном из моего запроса с базой данных MySql. Моя проблема в том, что у меня есть один столбец displaytime в моей таблице, но этот столбец таблицы показывает данные в формате UTC Time.I я хочу преобразовать этот столбец displaytime в местное время Zone.so как я могу предоставить эту возможность из самого запроса.

Я изумлённых вещей и тем самым я знал, что что-то вроде SELECT CONVERT_TZ() будет работать для этого. но это не работает для меня.

Вот мой запрос, в котором мне нужно преобразовать отображаемое время в местный часовой пояс... так может кто-нибудь помочь мне?

WHERE displaytime >= '2012-12-01 00:00:00'
  AND displaytime <='2013-02-22 23:59:59'
  AND ct.organizationId IN (
    SELECT t.organizationId
      FROM organization_ AS t
      JOIN organization_ AS p ON t.treePath LIKE CONCAT(p.treePath, '%')
     WHERE p.organizationId = 10707

Пример данных

3 ответа

Решение

SELECT CONVERT_TZ() будет работать для этого. Но он не работает для меня.

Почему, какую ошибку вы получаете?

SELECT CONVERT_TZ(displaytime,'GMT','MET');

должно работать, если тип столбца - метка времени или дата

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

Проверьте, как это работает:

SELECT CONVERT_TZ(a_ad_display.displaytime,'+00:00','+04:00');

Проверьте таблицу часовых поясов

SELECT * FROM mysql.time_zone;
SELECT * FROM mysql.time_zone_name;

http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html

Если эти таблицы пусты, вы не инициализировали свои таблицы часовых поясов. По ссылке выше вы можете использовать mysql_tzinfo_to_sql программа для загрузки таблиц часовых поясов. Пожалуйста, попробуйте это

shell> mysql_tzinfo_to_sql /usr/share/zoneinfo

или если не работает, читайте больше: http://dev.mysql.com/doc/refman/5.5/en/mysql-tzinfo-to-sql.html

В моем случае, когда часовые пояса не доступны на сервере, это прекрасно работает:

SELECT CONVERT_TZ(`date_field`,'+00:00',@@global.time_zone) FROM `table`

Примечание: global.time_zone использует часовой пояс сервера. Вы должны убедиться, что он имеет желаемый часовой пояс!

 select convert_tz(now(),@@session.time_zone,'+05:30')

замените +05:30 на нужный часовой пояс. смотрите здесь - /questions/45099600/kak-mne-uznat-tekuschij-chasovoj-poyas-mysql/45099731#45099731

отформатировать в желаемый формат времени, например:

 select DATE_FORMAT(convert_tz(now(),@@session.time_zone,'+05:30') ,'%b %d %Y %h:%i:%s %p') 

вы будете похожи на это -> 17 декабря 2014 10:39:56

Другие вопросы по тегам