Поделиться через


тип TIMESTAMP_NTZ

Область применения:флажок Databricks SQL флажок Databricks Runtime 13.3 LTS и выше

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

Эта функция предоставляется в режиме общедоступной предварительной версии. См. раздел "Заметки" для неподдерживаемых функций.

Чтобы использовать эту функцию в Delta Lake, необходимо включить поддержку table. Поддержка функций включена автоматически при создании нового Delta table с параметром column типа TIMESTAMP_NTZ. Активация не происходит автоматически при добавлении column типа TIMESTAMP_NTZ в существующий table. Для активирования поддержки TIMESTAMP_NTZcolumns, необходимо явно включить поддержку функции для существующего table.

Включение поддержки обновляет протокол table. См. статью Как Azure Databricks управляет совместимостью функций Delta Lake?. Следующая команда включает эту функцию:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timestampNtz' = 'supported')

Синтаксис

TIMESTAMP_NTZ

Ограничения

Поддерживаемый диапазон меток времени: -290308-12-21 BCE 19:59:06+294247-01-10 CE 04:00:54.

Литералы

TIMESTAMP_NTZ timestampString

timestampString
{ '[+|-]yyyy[...]' |
  '[+|-]yyyy[...]-[m]m' |
  '[+|-]yyyy[...]-[m]m-[d]d' |
  '[+|-]yyyy[...]-[m]m-[d]d ' |
  '[+|-]yyyy[...]-[m]m-[d]d[T][h]h[:]' |
  '[+|-]yyyy[..]-[m]m-[d]d[T][h]h:[m]m[:]' |
  '[+|-]yyyy[...]-[m]m-[d]d[T][h]h:[m]m:[s]s[.]' |
  '[+|-]yyyy[...]-[m]m-[d]d[T][h]h:[m]m:[s]s.[ms][ms][ms][us][us][us]' }
  • + или -: необязательный знак. - указывает BCE, + указывает CE (по умолчанию).
  • yyyy: год, состоящий по меньшей мере из четырех цифр.
  • [m]m: месяц из одной-двух цифр от 01 до 12.
  • [d]d: день из одной-двух цифр от 01 до 31.
  • h[h]: час из одной-двух цифр от 00 до 23.
  • m[m]: минуты из одной-двух цифр от 00 до 59.
  • s[s]: секунды из одной-двух цифр от 00 до 59.
  • [ms][ms][ms][us][us][us]: до 6 разрядов для долей секунды.

Если значения месяца или дня не указаны, по умолчанию используется значение 1. Если значения часа, минуты или секунды не заданы, по умолчанию используется 0.

Если литерал не представляет правильную метку времени Azure Databricks, возникает ошибка.

Примечания.

TIMESTAMP_NTZ имеет следующие ограничения:

  • поддержке Photon требуется Databricks SQL или Databricks Runtime 15.4 и более поздних версий.
  • Не поддерживается в источниках данных Databricks, используемых в драйверах Power BI, Tableau, Databricks JDBC/ODBC или Databricks открытый код драйверах.
  • Не поддерживается в Delta Sharing в Databricks Runtime 14.0 и ниже.
  • TIMESTAMP_NTZ тип поддерживается в источниках файлов, включая Delta/Parquet/ORC/AVRO/JSON/CSV. Однако существует ограничение на вывод schema для JSON/CSV-файлов с TIMESTAMP_NTZ columns. Для обратной совместимости тип метки времени по умолчанию используется или spark.read.csv(...)spark.read.json(...) будет тип TIMESTAMP вместо TIMESTAMP_NTZ.

Примеры

> SELECT TIMESTAMP_NTZ'0000';
  0000-01-01 00:00:00

> SELECT TIMESTAMP_NTZ'2020-12-31';
  2020-12-31 00:00:00

> SELECT TIMESTAMP_NTZ'2021-7-1T8:43:28.123456';
  2021-07-01 08:43:28.123456

> SELECT current_timezone(), CAST(TIMESTAMP '2021-7-1T8:43:28' as TIMESTAMP_NTZ);
  America/Los_Angeles 2021-07-01 08:43:28

> SELECT CAST('1908-03-15 10:1:17' AS TIMESTAMP_NTZ)
  1908-03-15 10:01:17

> SELECT TIMESTAMP_NTZ'+10000';
  +10000-01-01 00:00:00