MySQL se convertește dintr-un fus orar în altul

Mysql Se Converteste Dintr Un Fus Orar In Altul



„Fusurile orare sunt unul dintre conceptele complexe cu care trebuie să se confrunte dezvoltatorii. Deși instrumentele și implementările din bazele de date relaționale își propun să le facă tolerabile, ele se pot dovedi provocatoare și uneori pot duce la erori.

În acest articol, totuși, vom discuta despre cum puteți converti o oră dintr-un fus orar în altul folosind MySQL.”







Funcția MySQL Convert_Tz().

Funcția convert_tz() din MySQL ne permite să convertim de la un fus orar la altul. Sintaxa funcției este așa cum se arată:



CONVERT_TZ ( dt,de la_tz, la_tz )


Funcția ia valoarea datetime care trebuie convertită, fusul orar din care doriți să faceți conversia și conversia în care doriți să faceți conversia.



MySQL vă permite să specificați fusurile orare ca nume sau valori de compensare. Funcția va returna apoi obiectul Datetime selectat în fusul orar țintă.





Exemplul 1

Mai jos este un exemplu care ilustrează cum să convertiți un șir de timp din EST în EAT  folosind decalajele fusului orar.

Selectați
convert_tz ( '2022-08-08 22:22:22' ,
„+00:00” ,
„+03:00” ) la fel de timp1;



Exemplul de interogare de mai sus ar trebui să returneze o ieșire:



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

Exemplul 2

După cum am menționat, putem specifica fusul orar țintă după numele său. Cu toate acestea, acest lucru necesită să descărcați și să instalați fusurile orare MySQL.

Puteți rula comanda de mai jos pentru a încărca fusurile orare.

$ mysql_tzinfo_to_sql / usr / acțiune / zoneinfo | mysql -în rădăcină -p mysql


Dacă utilizați un fișier de fus orar, executați comanda:

mysql_tzinfo_to_sql tz_file tz_name | mysql -în rădăcină -p mysql


Descărcați fișierele fusului orar din resursa de mai jos:

https: // dev.mysql.com / descărcări / fusuri orare.html


Încărcați fișierul:

mysql -în rădăcină -p mysql < nume de fișier


Puteți specifica apoi fusul orar țintă cu numele:

mysql > SELECTAȚI CONVERT_TZ ( '2022-10-10 14:34:00' , „SUA/Est” , „SUA/Central” ) LA FEL DE timp ;


Interogarea de mai sus ar trebui să returneze ora convertită în fusul orar țintă ca:

+---------------------+
| timp |
+---------------------+
| 2022 - 10 - 10 13 : 3. 4 :00 |
+---------------------+
1 rând în a stabilit ( 0,00 sec )

Sfârşit

În această scurtă postare, am discutat despre cum să folosiți funcția convert_tz în MySQL pentru a converti timpul dintr-un fus orar în altul.

Codare fericită!!