I MySQL kan du konvertera ett datetime-värde mellan en tidszon till en annan med hjälp av CONVERT_TZ()
fungera. Denna funktion accepterar 3 argument; datetime-värdet, den ursprungliga tidszonen och tidszonen som ska konverteras till.
Syntax och exempel nedan.
Syntax
Här är syntaxen:
CONVERT_TZ(dt,from_tz,to_tz)
Där dt
är datum/tid, from_tz
är den ursprungliga tidszonen och to_tz
är tidszonen att konvertera till.
Exempel
Här är ett exempel på användning.
SELECT CONVERT_TZ('2020-12-01 01:00:00','+00:00','+08:00') AS Result;
Resultat:
+---------------------+ | Result | +---------------------+ | 2020-12-01 09:00:00 | +---------------------+
Namngivna tidszoner
Du kan också använda namngivna tidszoner, såsom 'US/Eastern'
, 'Europe/Moscow'
, 'MET'
, etc.
För att göra detta måste du först ställa in tidszonstabellerna. MySQL-installationsproceduren skapar tidszonstabellerna, men den laddar dem inte. Därför måste du fylla i dessa tabeller först.
Om du försöker använda en namngiven tidszon med den här funktionen utan att först fylla i tidszonstabellerna får du ett nollvärde.
SELECT CONVERT_TZ('2020-12-01 01:00:00','Europe/Helsinki','US/Eastern') AS Result;
Resultat:
+--------+ | Result | +--------+ | NULL | +--------+
Observera att även om du fyller i tidszonstabellerna kan du behöva uppdatera dem med jämna mellanrum. Detta beror på att informationen ibland kan ändras. För mer information om detta, se MySQL Server Time Zone Support på MySQL-dokumentationswebbplatsen.