В MySQL можете да конвертирате стойност за дата и час между една часова зона в друга, като използвате CONVERT_TZ()
функция. Тази функция приема 3 аргумента; стойността на датата и часа, оригиналната часова зона и часовата зона, към която да конвертирате.
Синтаксис и примери по-долу.
Синтаксис
Ето синтаксиса:
CONVERT_TZ(dt,from_tz,to_tz)
Където dt
е датата/часът, from_tz
е оригиналната часова зона и to_tz
е часовата зона за преобразуване.
Пример
Ето пример за употреба.
SELECT CONVERT_TZ('2020-12-01 01:00:00','+00:00','+08:00') AS Result;
Резултат:
+---------------------+ | Result | +---------------------+ | 2020-12-01 09:00:00 | +---------------------+
Наименувани часови зони
Можете също да използвате наименувани часови зони, като 'US/Eastern'
, 'Europe/Moscow'
, 'MET'
и др.
За да направите това, първо ще трябва да настроите таблиците с часовите зони. Процедурата за инсталиране на MySQL създава таблиците с часовите зони, но не ги зарежда. Следователно, първо ще трябва да попълните тези таблици.
Ако се опитате да използвате наименувана часова зона с тази функция, без първо да попълвате таблиците с часовите зони, ще получите нулева стойност.
SELECT CONVERT_TZ('2020-12-01 01:00:00','Europe/Helsinki','US/Eastern') AS Result;
Резултат:
+--------+ | Result | +--------+ | NULL | +--------+
Имайте предвид, че дори да попълните таблиците с часовите зони, може да се наложи периодично да ги актуализирате. Това е така, защото информацията може понякога да се променя. За повече информация относно това вижте Поддръжка на MySQL Server Time Zone на уебсайта за документация на MySQL.