Я подумав, що це може бути корисно:
Є три місця, де часовий пояс може бути встановлений у MySQL:
У файлі "my.cnf" у розділі [mysqld]
default-time-zone='+00:00'
@@ global.time_zone змінна
Щоб побачити, на яке значення вони встановлені:
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/uk/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?
ntp
- і подивіться, що вам підходить!"