Понякога може да се наложи да конвертирате времева стойност на MySQL от една часова зона в друга. Ето как да промените часовата зона на MySQL в заявка с помощта на функция convert_tz().
Конвертиране на часовата зона в MySQL заявка
Ще използваме функцията CONVERT_TZ, за да променим часовата зона на MySQL в заявката. Ето синтаксиса на функцията CONVERT_TZ.
convert_tz(value, from_timezone, to_timezone)
В горната функция трябва да предоставите стойността на времето, която да се преобразува, часовата зона, от която искате да преобразувате тази стойност, и часовата зона, в която искате да я преобразувате.
Можете да посочите часови зони като отмествания или имена на часови зони.
Бонус четене:Как да промените часовата зона на MySQL сървър
Ето пример за преобразуване на буквална времева стойност от UTC в EST часова зона, като се използват отмествания на часовата зона от „+00:00“ и „-05:00“ съответно за UTC и EST.
mysql> select convert_tz('2020-09-17 03:00:00','+00:00','-05:00'); +-----------------------------------------------------+ | convert_tz('2020-09-17 03:00:00','+00:00','-05:00') | +-----------------------------------------------------+ | 2020-09-16 22:00:00 | +-----------------------------------------------------+
Можете също да посочите часови зони вместо отмествания. В този случай обаче ще трябва да изтеглите и инсталирате MySQL часови зони на вашия сървър. Ето пример за преобразуване на EST в часова зона Париж, като посочите имена на часови зони вместо стойности на отместване.
mysql> select convert_tz('2020-09-17 03:00:00','US/Eastern','Europe/Paris');
Бонус четене:MySQL показва индекси в базата данни
Можете също да конвертирате MySQL функции за дата, час и дата и час във функция CONVERT_TZ. Ето пример за промяна на часовата зона на текущото време, получено с помощта на функцията NOW(), от UTC на EST
mysql> select convert_tz(now(),'+00:00','-05:00'); +-------------------------------------+ | convert_tz(now(),'+00:00','-05:00') | +-------------------------------------+ | 2020-09-17 04:45:07 | +-------------------------------------+
Бонус четене:Как да сравнявате MySQL бази данни
По същия начин можете също да конвертирате колони за дата, час, дата и час, като използвате convert_tz. Ето пример за промяна на часовата зона на order_date колона в продажби таблица, от UTC до EST
mysql> select convert_tz(order_date,'+00:00','-05:00') from sales; +------------------------------------------+ | convert_tz(order_date,'+00:00','-05:00') | +------------------------------------------+ | 2020-05-03 19:00:00 | | 2020-05-04 19:00:00 | | 2020-05-05 19:00:00 | | ... | | 2020-05-13 19:00:00 | +------------------------------------------+
Надяваме се, че сега можете да промените часовата зона на MySQL в заявка и да конвертирате стойности за дата, час, дата и час от една часова зона в друга.
Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте го днес!