Con il termine Time Zone si indica il tempo corrente di un determinata località sulla base del fuso orario di riferimento e di conseguenza della sua posizione geografica, la localizzazione di un'applicazione o di un dato permette quindi di utilizzare un sistema di datazione contestuale alla relativa Time Zone; MySQL mette a disposizione numerosi strumenti per la gestione dei valori relativi al tempo, è ovvio che per tutte quelle informazioni per cui è importante la registrazione della data corrente (e i calcoli effettuati rispetto a questa) è necessario un efficiente supporto per la localizzazione.
In questa breve trattazione vedremo quali funzionalità vengono fornite da MySQL per le operazioni di localizzazione e la gestione delle Time Zone.
MySQL utilizza per la localizzazione tre diversi parametri che verranno analizzati di seguito nel dettaglio:
La Time Zone del sistema (o ambiente) in cui funziona il Database server (System Time Zone), in pratica, quando viene avviato il Web server esso prova a stabilire autonomamente la Time Zone relativa alla postazione corrente (macchina Host) e utilizza questo processo per la valorizzazione della variabile di sistema system_time_zone; dal momento in cui questo valore verrà registrato esso non verrà modificato.
Sarà possibile impostare la Time Zone di riferimento per il DBMS al momento dell'avvio del servizio utilizzando l'opzione --timezone=nome_timezone disponibile per i comandi basati sullo startup script mysqld_safe; se per esempio venisse passato all'opzione --timezone l'argomento Europe/London questo valore verrebbe settato sulla base della Time Zone relativa al meridiano di Greenwich è cioè un'ora indietro rispetto all'ora corrente italiana.
È possibile inoltre impostare la variabile d'ambiente relativa alla Time Zone precedentemente all'avvio del processo principale del Database server, il daemon mysqld, in questo caso è però necessario tenere conto della piattaforma di riferimento perché le variabili disponibili per l'opzione --timezone sono dipendenti dal sistema ed è quindi fondamentale conoscere a priori quali siano i valori accettabili.
La Time Zone corrente del server, essa dipende dalla variabile globale di sistema time_zone che conserva il valore relativo al server in cui esiste; questa globale ha un valore iniziale pari a SYSTEM, ciò vuol dire che la Time Zone di riferimento del Database server è uguale alla Time Zone del sistema in cui esso è in esecuzione.
In ogni caso, è possibile definire il valore iniziale della variabile time_zone al momento dell'avvio del DBMS utilizzando l'opzione da Shell default-time-zone=timezone, dove per default-time-zone si intende la Time Zone predefinita di MySQL, questa opzione potrà anche essere scritta in un file nella forma default-time-zone='timezone'; in alternativa è disponibile l'istruzione da linea di comando:
mysql> SET GLOBAL time_zone = timezone;
in questo modo la variabile in oggetto potrà essere settata anche in fase di esecuzione del Database server (a runtime), il comando potrà essere utilizzato però soltanto da coloro a cui sono stati associati SUPER privilegi, cioè soltanto gli utenti che possono arrestare i processi di sistema.
|
SQL Maintenance Solution: soluzione free per la manutenzione di SQL Server |
Guida AccessIniziare a sviluppare database grazie alla potenza visuale offerta... |
Guida SQL Server 2005L'RDBMS di Microsoft è uno dei più utilizzati, soprattutto in ambito... |
Guida OracleScoprire ed approfondire un dei più importanti RDBMS sulla scena... |
Ogni settimana, in due distinte newsletter: notizie a approfondimenti su MySQL, SQLserver e Oracle.
Iscriviti alla newsletter