MySQL pretvori iz enega časovnega pasu v drugega

Mysql Pretvori Iz Enega Casovnega Pasu V Drugega



»Časovni pasovi so eden izmed zapletenih konceptov, s katerimi se morajo ukvarjati razvijalci. Čeprav so orodja in implementacije v relacijskih zbirkah podatkov namenjene temu, da so sprejemljivi, se lahko izkažejo za zahtevne in včasih povzročijo napake.

V tem članku pa bomo razpravljali o tem, kako lahko s pomočjo MySQL pretvorite čas iz enega časovnega pasu v drugega.«







Funkcija MySQL Convert_Tz().

Funkcija convert_tz() v MySQL nam omogoča pretvorbo iz enega časovnega pasu v drugega. Sintaksa funkcije je prikazana:



CONVERT_TZ ( dt,od_tz,do_tz )


Funkcija prevzame vrednost datuma in časa, ki jo želite pretvoriti, časovni pas, iz katerega želite pretvoriti, in pretvorbo, v katero želite pretvoriti.



MySQL vam omogoča, da določite časovne pasove kot imena ali vrednosti odmikov. Funkcija bo nato vrnila izbrani objekt Datetime v ciljnem časovnem pasu.





Primer 1

Spodaj je primer, ki prikazuje, kako pretvoriti časovni niz iz EST v EAT  z uporabo odmikov časovnega pasu.

izberite
convert_tz ( '2022-08-08 22:22:22' ,
'+00:00' ,
'+03:00' ) kot čas1;



Zgornji primer poizvedbe bi moral vrniti rezultat:



| čas1 |
| ------------------- |
| 2022 -08-09 01: 22 : 22 |

Primer 2

Kot že omenjeno, lahko določimo ciljni časovni pas z njegovim imenom. Vendar to zahteva, da prenesete in namestite MySQL Timezones.

Za nalaganje časovnih pasov lahko zaženete spodnji ukaz.

$ mysql_tzinfo_to_sql / usr / deliti / zonainfo | mysql -in korenina -str mysql


Če uporabljate datoteko časovnega pasu, zaženite ukaz:

mysql_tzinfo_to_sql tz_file tz_name | mysql -in korenina -str mysql


Prenesite datoteke časovnih pasov v vir spodaj:

https: // dev.mysql.com / prenosi / timezones.html


Naloži datoteko:

mysql -in korenina -str mysql < Ime datoteke


Nato lahko določite ciljni časovni pas z imenom:

mysql > IZBERITE CONVERT_TZ ( '2022-10-10 14:34:00' , 'ZDA/vzhod' , 'ZDA/osrednje' ) AS čas ;


Zgornja poizvedba bi morala vrniti čas, pretvorjen v ciljni časovni pas kot:

+--------------------+
| čas |
+--------------------+
| 2022 - 10 - 10 13 : 3. 4 :00 |
+--------------------+
1 vrstica v set ( 0,00 sek )

Konec

V tej kratki objavi smo razpravljali o tem, kako uporabiti funkcijo convert_tz v MySQL za pretvorbo časa iz enega časovnega pasu v drugega.

Veselo kodiranje!!