Подтвердить что ты не робот

Как конвертировать дату UTC в локальный часовой пояс в MySql Select Query

Я использую это Where Condition in One Из моего запроса с MySql Database.My Проблема в том, что у меня есть один столбец отображения в моей таблице, но в этом столбце таблицы отображаются данные в UTC Time.and я хочу преобразовать этот столбец отображения в Local Time Zone.so как я могу предоставить этот объект из самого запроса.

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

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

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

enter image description here SAmple DAta​​p >

enter image description here

4b9b3361

Ответ 1

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

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

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

заменить "+05: 30" на желаемый часовой пояс. см. здесь fooobar.com/info/24141/...

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

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

вы получите схож с этим → 17 декабря 2014 10:39:56 AM