W MySQL możesz przekonwertować wartość daty i godziny między jedną strefą czasową a drugą za pomocą CONVERT_TZ()
funkcjonować. Ta funkcja przyjmuje 3 argumenty; wartość daty i godziny, oryginalną strefę czasową i strefę czasową do konwersji.
Składnia i przykłady poniżej.
Składnia
Oto składnia:
CONVERT_TZ(dt,from_tz,to_tz)
Gdzie dt
to data/czas, from_tz
to oryginalna strefa czasowa, a to_tz
to strefa czasowa do konwersji.
Przykład
Oto przykład użycia.
SELECT CONVERT_TZ('2020-12-01 01:00:00','+00:00','+08:00') AS Result;
Wynik:
+---------------------+ | Result | +---------------------+ | 2020-12-01 09:00:00 | +---------------------+
Nazwane strefy czasowe
Możesz także użyć nazwanych stref czasowych, takich jak 'US/Eastern'
, 'Europe/Moscow'
, 'MET'
itp.
Aby to zrobić, musisz najpierw skonfigurować tabele stref czasowych. Procedura instalacji MySQL tworzy tabele stref czasowych, ale ich nie ładuje. Dlatego musisz najpierw wypełnić te tabele.
Jeśli spróbujesz użyć nazwanej strefy czasowej z tą funkcją bez uprzedniego wypełnienia tabel stref czasowych, otrzymasz wartość pustą.
SELECT CONVERT_TZ('2020-12-01 01:00:00','Europe/Helsinki','US/Eastern') AS Result;
Wynik:
+--------+ | Result | +--------+ | NULL | +--------+
Pamiętaj, że nawet jeśli wypełnisz tabele stref czasowych, może być konieczne ich okresowe aktualizowanie. Dzieje się tak, ponieważ informacje mogą się czasami zmieniać. Aby uzyskać więcej informacji na ten temat, zobacz Obsługa stref czasowych serwera MySQL w witrynie dokumentacji MySQL.