Time Zone
Contents
MariaDB tiene traccia di diverse impostazioni riguardanti il fuso orario:
Time Zone di sistema
La time zone di sistema viene determinata all'avvio del server. Di solito viene letta dalla macchina host, e poi utilizzata per impostare la variabile system_time_zone. E' anche possibile impostarla con l'opzione --timezone=timezone
di mysqld_safe, o impostando la variabile di ambiente TZ prima di avviare il server.
Time Zone del server
La server time zone per default è la time zone di sistema del server, e imposta la variabile time_zone. E' anche possibile impostarla con l'opzione --default-time-zone=timezone
all'avvio, o modificarla a runtime se si ha il privilegio SUPER:
SET GLOBAL time_zone = timezone;
Time Zone della connessione
Anche ogni client che si connette ha una sua time zone. Questa inizialmente viene dal valore globale della variabile time_zone, che imposta il valore di sessione della stessa variabile.
Il client può però modificarla:
SET time_zone = timezone;
Gli effetti della time zone
Alcune funzioni sono influenzate dall'impostazione della time zone. Tra queste troviamo:
così come i valori registrati e recuperati dalle colonne TIMESTAMP. Questi ultimi sono convertiti in UTC (Coordinated Universal Time) al momento della scrittura, e riconvertiti al momento dell'estrazione.
Altre funzioni non sono influenzate dalla time zone. Ad esempio:
così come le colonne DATETIME, DATE e TIME.
Impostare la time zone
La time zone corrente può essere visualizzata leggendo il valore globale o di sessione della variabile time_zone.
SHOW GLOBAL VARIABLES LIKE 'time_zone'; +---------------+--------+ | Variable_name | Value | +---------------+--------+ | time_zone | SYSTEM | +---------------+--------+
La time zone può essere specificata in uno dei seguenti formati:
SYSTEM
, il default, indica che si sta usando la time zone di sistema.- Uno spostamento rispetto dall'UTC, come
+5:00
o-9:00
. - Se le tabelle delle time zone (nel database mysql) sono in uso, il nome di una time zone, come
Africa/Johannesburg
oEurope/Helsinki
.
Le tabelle delle time zone nel database mysql
Per default, le tabelle delle time zone vengono create (nel database mysql), ma non popolate. E' preferibile che il sistema gestisca le time zone, ma è possibile popolare le tabelle tramite lo strumento mysql_tzinfo_to_sql, che si serve dei dati zoneinfo disponibili su Linux, Mac OS X, FreeBSD e Solaris. Gli utenti Windows devono importare le time zone manualmente (sono disponibili su http://dev.mysql.com/downloads/timezones.html).
I dati delle time zone sono aggiornati quando necessario, e potrebbe essere necessario ricaricare le tabelle delle time zone.