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

to_datetime

Преобразует Unix-метку времени в значение типа DATETIME на основе текущих настроек часового пояса.

Подробные инструкции по настройке часового пояса см. в разделе Настройка часового пояса.

Если вы хотите преобразовать Unix-метку времени в значение типа DATETIME независимо от настроек часового пояса текущей сессии, используйте функцию to_datetime_ntz.

Синтаксис

DATETIME to_datetime(BIGINT unix_ts, INT scale)

Параметры

ИмяТипОбязательныйОписание
unix_tsBIGINTДаUnix-метка времени для преобразования. Например, 1598306400 (секунды) и 1598306400123 (миллисекунды).
scaleINTНетТочность времени. Допустимые значения:
  • 0 — секунды (по умолчанию).
  • 3 — миллисекунды.
  • 6 — микросекунды.

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

  • При успехе: возвращает значение DATETIME на основе часового пояса текущей сессии.
  • При неудаче: возвращает NULL. Распространённые причины:
    • Недопустимое значение scale (не 0, 3 или 6)
    • Значение выходит за пределы диапазона DATETIME (0001-01-01 — 9999-12-31)

Примеры

SET time_zone = 'Asia/Shanghai';

SELECT to_datetime(1598306400);
-- Возвращает: 2020-08-25 06:00:00

SELECT to_datetime(1598306400123, 3);
-- Возвращает: 2020-08-25 06:00:00.123000