MySQL converte da un fuso orario all'altro

Mysql Converte Da Un Fuso Orario All Altro



“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.

Selezionare
convert_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:

mysql_tzinfo_to_sql tz_file tz_name | mysql -in radice -p mysql


Scarica i file del fuso orario nella risorsa di seguito:

https: // dev.mysql.com / download / fusi orari.html


Carica il file:

mysql -in radice -p mysql < nome del file


È quindi possibile specificare il fuso orario di destinazione con il nome:

mysql > SELEZIONA CONVERT_TZ ( '2022-10-10 14:34:00' , 'Stati Uniti/Est' , 'Stati Uniti/Centro' ) COME volta ;


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!!