MySql - ВЫБРАТЬ столбец TimeStamp в формате UTC

В моей БД Mysql 5.0 у меня есть столбец для контроля информации LastUpdated. Столбец является меткой времени и MySql автоматически обновляет данные.

Я пытаюсь выбрать этот столбец в формате UTC.

Проблема в том, что сервер настроен на дату и время в США. Согласно документации MySql, БД хранит информацию в UTC, но когда я хочу отобразить информацию, она преобразует ее во время Сервера.

Есть ли способ сделать команду SELECT, избегая этого преобразования?

3 ответа

Решение

Помимо изменения часового пояса по умолчанию для сервера, часовой пояс также можно настроить для каждого соединения, выполнив следующую инструкцию SQL:

SET time_zone = timezone;

Где часовой пояс - это имя часового пояса ( см. Документы MySQL).

Кроме того, вы также можете преобразовать временную метку в другой часовой пояс, используя CONVERT_TZ функция

SELECT 
CONVERT_TZ(`timestamp_field`, @@session.time_zone, '+00:00') AS `utc_datetime` 
FROM `table_name`

Я сделал здесь шпаргалку: должен ли MySQL иметь часовой пояс с UTC?

Мне нужно было изменить это, чтобы добавить "Z" в конце других вещей (например, jQuery timeago), которые знали, что время было UTC:

      SELECT 
CONCAT(CONVERT_TZ(`timestamp_field`, @@session.time_zone, '+00:00'), 'Z') 
     AS `utc_datetime` 
FROM `table_name`
Другие вопросы по тегам