Как конвертировать дату 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