Ho pensato che potesse essere utile:
Esistono tre posizioni in cui è possibile impostare il fuso orario in MySQL:
Nel file "my.cnf" nella sezione [mysqld]
default-time-zone='+00:00'
@@ variabile global.time_zone
Per vedere a quale valore sono impostati:
SELECT @@global.time_zone;
Per impostare un valore per esso utilizzare uno dei due:
SET GLOBAL time_zone = '+8:00';
SET GLOBAL time_zone = 'Europe/Helsinki';
SET @@global.time_zone = '+00:00';
(L'uso di fusi orari denominati come "Europa / Helsinki" significa che devi avere una tabella dei fusi orari correttamente popolata.)
Tieni presente che +02:00
è un offset. Europe/Berlin
è un fuso orario (che ha due offset) ed CEST
è un orario che corrisponde a un offset specifico.
@@ session.time_zone variabile
SELECT @@session.time_zone;
Per impostarlo utilizzare uno dei due:
SET time_zone = 'Europe/Helsinki';
SET time_zone = "+00:00";
SET @@session.time_zone = "+00:00";
Entrambi potrebbero restituire SYSTEM, il che significa che usano il fuso orario impostato in my.cnf.
Affinché i nomi di fuso orario funzionino, è necessario impostare le tabelle di informazioni sul fuso orario che devono essere popolate: http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html . Cito anche come popolare quelle tabelle in questa risposta .
Per ottenere la differenza di fuso orario corrente come TIME
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
Restituirà 02:00:00 se il fuso orario è +2: 00.
Per ottenere il timestamp UNIX corrente:
SELECT UNIX_TIMESTAMP();
SELECT UNIX_TIMESTAMP(NOW());
Per ottenere la colonna timestamp come timestamp UNIX
SELECT UNIX_TIMESTAMP(`timestamp`) FROM `table_name`
Per ottenere una colonna datetime UTC come data / ora UNIX
SELECT UNIX_TIMESTAMP(CONVERT_TZ(`utc_datetime`, '+00:00', @@session.time_zone)) FROM `table_name`
Nota: la modifica del fuso orario non modificherà il datetime o il timestamp memorizzati , ma mostrerà un datetime diverso per le colonne del timestamp esistenti in quanto sono memorizzate internamente come timestamp UTC e visualizzate esternamente nel fuso orario MySQL corrente.
Ho creato un cheat sheet qui: MySQL dovrebbe avere il fuso orario impostato su UTC?
ntp
- e vedi cosa è giusto per te!"