“I fusi orari sono uno dei concetti complessi con cui gli sviluppatori devono fare i conti. Sebbene gli strumenti e le implementazioni nei database relazionali mirino a renderli tollerabili, possono rivelarsi impegnativi e talvolta portare a errori.
In questo articolo, tuttavia, discuteremo di come convertire un'ora da un fuso orario all'altro utilizzando MySQL'.
Funzione MySQL Convert_Tz()
La funzione convert_tz() in MySQL ci consente di convertire da un fuso orario all'altro. La sintassi della funzione è la seguente:
CONVERT_TZ ( dt,da_tz,a_tz )
La funzione prende il valore datetime da convertire, il fuso orario da cui si desidera convertire e la conversione in cui si desidera convertire.
MySQL consente di specificare i fusi orari come nomi o valori di offset. La funzione restituirà quindi l'oggetto DateTime selezionato nel fuso orario di destinazione.
Esempio 1
Di seguito è riportato un esempio che illustra come convertire una stringa di tempo da EST a EAT utilizzando gli scostamenti del fuso orario.
Selezionareconvert_tz ( '2022-08-08 22:22:22' ,
'+00:00' ,
'+03:00' ) come tempo1;
La query di esempio sopra dovrebbe restituire un output:
| tempo1 |
| ------------------- |
| 2022 -08-09 01: 22 : 22 |
Esempio 2
Come accennato, possiamo specificare il fuso orario di destinazione con il suo nome. Tuttavia, ciò richiede il download e l'installazione di MySQL Timezones.
Puoi eseguire il comando seguente per caricare i fusi orari.
$ mysql_tzinfo_to_sql / usr / Condividere / zoneinfo | mysql -in radice -p mysql
Se stai usando un file di fuso orario, esegui il comando:
Scarica i file del fuso orario nella risorsa di seguito:
Carica il file:
È quindi possibile specificare il fuso orario di destinazione con il nome:
La query sopra dovrebbe restituire l'ora convertita nel fuso orario di destinazione come:
| volta |
+----------------------+
| 2022 - 10 - 10 13 : 3. 4 :00 |
+----------------------+
1 riga in impostare ( 0.00 sec )
Fine
In questo breve post, abbiamo discusso di come utilizzare la funzione convert_tz in MySQL per convertire l'ora da un fuso orario all'altro.
Buona codifica!!