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


тип TIMESTAMP_NTZ

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

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

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

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

Включение поддержки улучшает протокол таблицы. См. сведения о совместимости функций 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. Однако существует ограничение вывода схемы для JSON/CSV-файлов с TIMESTAMP_NTZ столбцами. Для обеспечения обратной совместимости тип метки времени, выводимый по умолчанию на основе 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