Перейти к основному содержимому
Версия: 1.5.x

convert_tz

Описание​

Преобразует значение DATE или DATETIME из одного часового пояса в другой.

Эта функция может возвращать разные результаты для разных часовых поясов. Для получения дополнительной информации см. Настройка часового пояса.

Синтаксис​

DATETIME CONVERT_TZ(DATETIME|DATE dt, VARCHAR from_tz, VARCHAR to_tz)

Параметры​

  • dt: значение DATE или DATETIME для преобразования.

  • from_tz: исходный часовой пояс. Поддерживается VARCHAR. Часовой пояс может быть представлен в двух форматах: один — база данных часовых поясов (например, Asia/Shanghai), а другой — смещение UTC (например, +08:00).

  • to_tz: целевой часовой пояс. Поддерживается VARCHAR. Его формат такой же, как у from_tz.

Возвращаемое значение​

Возвращает значение типа данных DATETIME. Если входное значение имеет тип DATE, оно будет преобразовано в значение DATETIME. Эта функция возвращает NULL, если любой из входных параметров недействителен или равен NULL.

Примечания по использованию​

Для базы данных часовых поясов см. Список часовых поясов базы данных tz (в Википедии).

Примеры​

Пример 1: Преобразование datetime из Шанхая в Лос-Анджелес.

select convert_tz('2019-08-01 13:21:03', 'Asia/Shanghai', 'America/Los_Angeles');
+---------------------------------------------------------------------------+
| convert_tz('2019-08-01 13:21:03', 'Asia/Shanghai', 'America/Los_Angeles') |
+---------------------------------------------------------------------------+
| 2019-07-31 22:21:03 |
+---------------------------------------------------------------------------+
1 row in set (0.00 sec) |

Пример 2: Преобразование date из Шанхая в Лос-Анджелес.

select convert_tz('2019-08-01', 'Asia/Shanghai', 'America/Los_Angeles');
+------------------------------------------------------------------+
| convert_tz('2019-08-01', 'Asia/Shanghai', 'America/Los_Angeles') |
+------------------------------------------------------------------+
| 2019-07-31 09:00:00 |
+------------------------------------------------------------------+
1 row in set (0.00 sec)

Пример 3: Преобразование datetime из UTC+08:00 в Лос-Анджелес.

select convert_tz('2019-08-01 13:21:03', '+08:00', 'America/Los_Angeles');
+--------------------------------------------------------------------+
| convert_tz('2019-08-01 13:21:03', '+08:00', 'America/Los_Angeles') |
+--------------------------------------------------------------------+
| 2019-07-31 22:21:03 |
+--------------------------------------------------------------------+
1 row in set (0.00 sec)

Ключевые слова​

CONVERT_TZ, timezone, time zone