Myślałem, że to może być przydatne:
Istnieją trzy miejsca, w których strefa czasowa może być ustawiona w MySQL:
W pliku „my.cnf” w sekcji [mysqld]
default-time-zone='+00:00'
@@ zmienna global.time_zone
Aby zobaczyć, jaką wartość są ustawione:
SELECT @@global.time_zone;
Aby ustawić dla niego wartość, użyj jednego z nich:
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';
(Użycie nazwanych stref czasowych, takich jak „Europa / Helsinki” oznacza, że musisz odpowiednio wypełnić tabelę stref czasowych).
Pamiętaj, że +02:00
jest to przesunięcie. Europe/Berlin
jest strefą czasową (która ma dwa przesunięcia) i CEST
jest czasem zegarowym, który odpowiada konkretnemu przesunięciu.
@@ zmienna session.time_zone
SELECT @@session.time_zone;
Aby ustawić, użyj jednego z nich:
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";
Oba mogą zwrócić SYSTEM, co oznacza, że używają strefy czasowej ustawionej w my.cnf.
Aby nazwy stref czasowych działały, musisz skonfigurować tabele informacyjne stref czasowych: http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html . Wspominam również, jak wypełnić te tabele w tej odpowiedzi .
Aby uzyskać bieżące przesunięcie strefy czasowej jako TIME
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
Zwróci 02:00:00, jeśli twoja strefa czasowa to +2: 00.
Aby uzyskać bieżący znacznik czasu UNIX:
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());
Aby uzyskać kolumnę znacznika czasu jako znacznik czasu UNIX
SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`
Aby uzyskać kolumnę godziny UTC jako znacznik czasu UNIX
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
Uwaga: Zmiana strefy czasowej nie zmieni przechowywanej daty ani godziny , ale pokaże inną datę w istniejących kolumnach znaczników czasu, ponieważ są one wewnętrznie przechowywane jako znaczniki czasu UTC i są wyświetlane zewnętrznie w bieżącej strefie czasowej MySQL.
Zrobiłem tutaj cheatheet: Czy MySQL powinien mieć strefę czasową ustawioną na UTC?
ntp
- i zobacz, co jest dla Ciebie odpowiednie!”