I MySQL kan du konvertere en datetime-værdi mellem en tidszone til en anden ved hjælp af CONVERT_TZ()
fungere. Denne funktion accepterer 3 argumenter; dato-tidsværdien, den oprindelige tidszone og den tidszone, der skal konverteres til.
Syntaks og eksempler nedenfor.
Syntaks
Her er syntaksen:
CONVERT_TZ(dt,from_tz,to_tz)
Hvor dt
er datoen/klokkeslættet, from_tz
er den oprindelige tidszone og to_tz
er den tidszone, der skal konverteres til.
Eksempel
Her er et eksempel på brug.
SELECT CONVERT_TZ('2020-12-01 01:00:00','+00:00','+08:00') AS Result;
Resultat:
+---------------------+ | Result | +---------------------+ | 2020-12-01 09:00:00 | +---------------------+
Navngivne tidszoner
Du kan også bruge navngivne tidszoner, såsom 'US/Eastern'
, 'Europe/Moscow'
, 'MET'
osv.
For at gøre dette skal du først konfigurere tidszonetabellerne. MySQL-installationsproceduren opretter tidszonetabellerne, men den indlæser dem ikke. Derfor skal du først udfylde disse tabeller.
Hvis du forsøger at bruge en navngivet tidszone med denne funktion uden først at udfylde tidszonetabellerne, får du en nulværdi.
SELECT CONVERT_TZ('2020-12-01 01:00:00','Europe/Helsinki','US/Eastern') AS Result;
Resultat:
+--------+ | Result | +--------+ | NULL | +--------+
Bemærk, at selvom du udfylder tidszonetabellerne, skal du muligvis opdatere dem med jævne mellemrum. Dette skyldes, at oplysningerne lejlighedsvis kan ændre sig. For mere information om dette, se MySQL Server Time Zone Support på MySQL-dokumentationswebstedet.