Я подумал, что это может быть полезно:
Есть три места, где часовой пояс может быть установлен в MySQL:
В файле "my.cnf" в разделе [mysqld]
default-time-zone='+00:00'
@@ global.time_zone variable
Чтобы увидеть, какое значение они имеют:
SELECT @@global.time_zone;
Чтобы установить значение для него, используйте один из них:
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';
(Использование названных часовых поясов, таких как «Европа / Хельсинки» означает, что вам необходимо правильно заполнить таблицу часовых поясов.)
Имейте в виду, что +02:00
- это смещение. Europe/Berlin
- это часовой пояс (с двумя смещениями), а CEST
- это время, соответствующее определенному смещению.
@@ session.time_zone переменная
SELECT @@session.time_zone;
Чтобы установить его, используйте один из них:
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";
Оба могут возвращать SYSTEM, что означает, что они используют часовой пояс, установленный в my.cnf.
Чтобы имена часовых поясов работали, вы должны настроить заполнение таблиц с информацией о часовых поясах: http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html. Я также упоминаю, как заполнять эти таблицы в этом ответе .
Чтобы получить текущее смещение часового пояса как TIME
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
Он вернется в 02:00:00, если ваш часовой пояс +2: 00.
Чтобы получить текущую метку времени UNIX:
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());
Чтобы получить столбец отметки времени в качестве отметки времени UNIX
SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`
Чтобы получить столбец даты и времени UTC в качестве метки времени UNIX
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
Примечание. Изменение часового пояса не приведет к изменению сохраненной даты и времени , но будет отображать другое время и дату для существующих столбцов отметок времени, поскольку они хранятся как отметки времени UTC и отображаются в текущем часовом поясе MySQL. .
Я сделал таблицу здесь: Должен ли MySQL иметь часовой пояс с UTC?