“Tidszoner er et af de komplekse koncepter, som udviklere skal forholde sig til. Selvom værktøjer og implementeringer i relationelle databaser har til formål at gøre dem tolerable, kan de vise sig udfordrende og nogle gange føre til fejl.
I denne artikel vil vi dog diskutere, hvordan du kan konvertere en tid fra en tidszone til en anden ved hjælp af MySQL.'
MySQL Convert_Tz() Funktion
Funktionen convert_tz() i MySQL gør det muligt for os at konvertere fra en tidszone til en anden. Funktionens syntaks er som vist:
CONVERT_TZ ( dt,fra_tz,til_tz )
Funktionen tager den datetime-værdi, der skal konverteres, den tidszone, du ønsker at konvertere fra, og den konverter, du vil konvertere til.
MySQL giver dig mulighed for at angive tidszonerne som navne eller offsetværdier. Funktionen returnerer derefter det valgte Datetime-objekt i måltidszonen.
Eksempel 1
Nedenfor er et eksempel, der illustrerer, hvordan man konverterer en tidsstreng fra EST til EAT ved hjælp af tidszoneforskydninger.
Vælgkonverter_tz ( '2022-08-08 22:22:22' ,
'+00:00' ,
'+03:00' ) som tid1;
Eksempelforespørgslen ovenfor skulle returnere et output:
| tid 1 |
| ------------------- |
| 2022 -08-09 01: 22 : 22 |
Eksempel 2
Som nævnt kan vi angive måltidszonen ved dens navn. Dette kræver dog, at du downloader og installerer MySQL Timezones.
Du kan køre kommandoen nedenfor for at indlæse tidszonerne.
$ mysql_tzinfo_to_sql / usr / del / zoneinfo | mysql -i rod -s mysql
Hvis du bruger en tidszonefil, skal du køre kommandoen:
Download tidszonefilerne i ressourcen nedenfor:
Indlæs filen:
Du kan derefter angive måltidszonen med navnet:
Forespørgslen ovenfor skulle returnere tiden konverteret til måltidszonen som:
| tid |
+----------------------------+
| 2022 - 10 - 10 13 : 3. 4 :00 |
+----------------------------+
1 række i sæt ( 0,00 sek )
Ende
I dette korte indlæg diskuterede vi, hvordan man bruger convert_tz-funktionen i MySQL til at konvertere tid fra en tidszone til en anden.
God kodning!!