V MySQL můžete převést hodnotu data a času mezi jedním časovým pásmem do druhého pomocí CONVERT_TZ()
funkce. Tato funkce přijímá 3 argumenty; hodnotu datetime, původní časové pásmo a časové pásmo, do kterého se má převést.
Syntaxe a příklady níže.
Syntaxe
Zde je syntaxe:
CONVERT_TZ(dt,from_tz,to_tz)
Kde dt
je datum/čas, from_tz
je původní časové pásmo a to_tz
je časové pásmo, do kterého se má převést.
Příklad
Zde je příklad použití.
SELECT CONVERT_TZ('2020-12-01 01:00:00','+00:00','+08:00') AS Result;
Výsledek:
+---------------------+ | Result | +---------------------+ | 2020-12-01 09:00:00 | +---------------------+
Pojmenovaná časová pásma
Můžete také použít pojmenovaná časová pásma, například 'US/Eastern'
, 'Europe/Moscow'
, 'MET'
, atd.
Chcete-li to provést, musíte nejprve nastavit tabulky časových pásem. Instalační procedura MySQL vytvoří tabulky časových pásem, ale nenačte je. Proto budete muset nejprve naplnit tyto tabulky.
Pokud se s touto funkcí pokusíte použít pojmenované časové pásmo, aniž byste nejprve vyplnili tabulky časových pásem, získáte hodnotu null.
SELECT CONVERT_TZ('2020-12-01 01:00:00','Europe/Helsinki','US/Eastern') AS Result;
Výsledek:
+--------+ | Result | +--------+ | NULL | +--------+
Všimněte si, že i když naplníte tabulky časových pásem, možná je budete muset pravidelně aktualizovat. Informace se totiž mohou občas změnit. Další informace o tomto najdete v části Podpora časového pásma serveru MySQL na webu dokumentace MySQL.