Mysql
 sql >> Database >  >> RDS >> Mysql

Mysql:Converti DB dall'ora locale a UTC

Per prima cosa devi assicurarti che la tabella mysql.time_zone_name sia popolata. Se è vuoto, puoi seguire le istruzioni in questa pagina per compilarlo:

http://dev.mysql.com/doc /refman/5.1/en/time-zone-support.html

In genere è semplice come eseguire un comando come questo nella shell:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

Una volta che la tabella è stata popolata puoi usare la funzione CONVERT_TZ() per aggiornare i valori esistenti nel DB:

http://dev .mysql.com/doc/refman/5.1/en/funzioni-data-e-ora.html#function_convert-tz

Ecco due esempi per mostrare come converte datetime da CET a UTC in inverno e in estate:

mysql> SELECT CONVERT_TZ('2010-01-22 12:00:00','CET','UTC');
+-----------------------------------------------+
| CONVERT_TZ('2010-01-22 12:00:00','CET','UTC') |
+-----------------------------------------------+
| 2010-01-22 11:00:00                           |
+-----------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CONVERT_TZ('2010-07-22 12:00:00','CET','UTC');
+-----------------------------------------------+
| CONVERT_TZ('2010-07-22 12:00:00','CET','UTC') |
+-----------------------------------------------+
| 2010-07-22 10:00:00                           |
+-----------------------------------------------+
1 row in set (0.00 sec)