тип TIMESTAMP_NTZ
Область применения: Databricks SQL Databricks Runtime 13.3 LTS и выше
Представляет values, состоящую из values полей года, месяца, дня, часа, минуты и секунды. Все операции выполняются без учета часового пояса.
Эта функция предоставляется в режиме общедоступной предварительной версии. См. раздел "Заметки" для неподдерживаемых функций.
Чтобы использовать эту функцию в Delta Lake, необходимо включить поддержку table. Поддержка функций включена автоматически при создании нового Delta table с параметром column типа TIMESTAMP_NTZ
. Активация не происходит автоматически при добавлении column типа TIMESTAMP_NTZ
в существующий table. Для активирования поддержки TIMESTAMP_NTZ
columns, необходимо явно включить поддержку функции для существующего 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