Time Zone

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 o Europe/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.

Commenti

Sto caricando i commenti......