MySQL si converte da un fuso orario all'altro

MySQL si converte da un fuso orario all'altro

“Le zone dei tempi sono uno dei concetti complessi che gli sviluppatori hanno a che fare. 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 puoi convertire un tempo da un fuso orario a un altro usando MySQL."

Funzione mysql convert_tz ()

La funzione convert_tz () in mysql ci consente di convertire da un fuso orario in un altro. La sintassi della funzione è come mostrata:

Convert_tz (dt, from_tz, to_tz)


La funzione prende da convertire il valore DateTime, il fuso orario da cui si desidera convertire e il convertito a cui si desidera convertire.

MySQL ti consente di specificare i fulmine 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 mangiare usando gli offset 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:

| time1 |
| ----------------------- |
| 2022-08-09 01: 22: 22 |

Esempio 2

Come accennato, possiamo specificare il fuso orario di destinazione con il suo nome. Tuttavia, questo richiede di scaricare e installare zone mysql.

È possibile eseguire il comando qui sotto per caricare gli zone di tempori.

$ mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql -u root -p mysql


Se si utilizza un file di fuso orario, eseguire il comando:

mysql_tzinfo_to_sql tz_file tz_name | mysql -u root -p mysql


Scarica i file del fuso orario nella risorsa di seguito:

https: // dev.mysql.com/download/zones.html


Carica il file:

mysql -u root -p mysql < file_name


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

mysql> Seleziona convert_tz ('2022-10-10 14:34:00', 'US/Eastern', 'US/Central') come tempo;


La query sopra dovrebbe restituire il tempo convertito nel fuso orario target come:

+---------------------+
| tempo |
+---------------------+
| 2022-10-10 13:34:00 |
+---------------------+
1 riga in set (0.00 sec)

FINE

In questo breve post, abbiamo discusso di come utilizzare la funzione convert_tz in mysql per convertire il tempo da un fuso orario a un altro.

Codice felice!!