TIMESTAMP_NTZ 型

適用対象:check marked yes Databricks SQL Databricks Runtime 13.3 LTS 以降

フィールドの値 (年、月、日、時、分、秒) を構成する値を表します。 すべての操作は、タイム ゾーンを考慮せずに実行されます。

この機能はパブリック プレビュー段階にあります。 サポートされていない機能については、「注」のセクションを参照してください。

Delta Lake でこの機能を使用するには、テーブルのサポートを有効にする必要があります。 TIMESTAMP_NTZ 型の列を持つ新しい Delta テーブルを作成すると、機能のサポートは自動的に有効になります。 TIMESTAMP_NTZ 型の列を既存のテーブルに追加しても、自動的に有効にはなりません。 TIMESTAMP_NTZ 列のサポートを有効にするには、既存のテーブルに対して機能のサポートを明示的に有効にする必要があります。

サポートを有効にすると、テーブル プロトコルがアップグレードされます。 Delta Lake の機能の互換性とプロトコルに関する記事を参照してください。 次のコマンドは、この機能を有効にします。

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

構文

TIMESTAMP [ (p) ] WITHOUT TIME ZONE | TIMESTAMP_NTZ [ (p) ]

TIMESTAMP WITHOUT TIME ZONE は Databricks Runtime 17.1 以降に適用されます。

  • p: 6 から 9までの任意の精度で、分数秒数を表します。 既定値は 6 です。 ナノ秒精度のために 9 を指定してください。

Important

TIMESTAMP_NTZ(p) 精度では 7–9 は ベータです。

制限

サポートされているタイムスタンプの範囲は -290308-12-21 BCE 19:59:06 から +294247-01-10 CE 04:00:54 です。

Note

デルタやパルケットに書く際、6以上の精度で書くTIMESTAMP_NTZ(p)値は1677年から2262年までに制限されます。

リテラル

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][ns][ns][ns]' }
  • + または -: 省略可能な記号。 - は BCE を示し、+ は CE (既定値) を示します。
  • yyyy: 少なくとも 4 桁の数字で構成される年。
  • [m]m: 01 から 12 までの月を表す 1 桁または 2 桁の数字。
  • [d]d: 01 から 31 までの日を表す 1 桁または 2 桁の数字。
  • h[h]: 00 から 23 までの時間を表す 1 桁または 2 桁の数字。
  • m[m]: 00 から 59 までの分を表す 1 桁または 2 桁の数字。
  • s[s]: 00 から 59 までの秒を表す 1 桁または 2 桁の数字。
  • [ms][ms][ms][us][us][us][ns][ns][ns]:最大9桁の分数秒まで。 TIMESTAMP_NTZ(9)リテラルを構成するために正確に9桁の分数を指定します。

月または日のコンポーネントが指定されていない場合、既定値は 1 です。 時間、分、または秒のコンポーネントが指定されていない場合、既定値は 0 です。

リテラルが適切なタイムスタンプを表していない場合、Azure Databricks ではエラーが発生します。

メモ

TIMESTAMP_NTZ には次の制限が適用されます。

  • Photon のサポートには、Databricks SQL または Databricks Runtime 15.4 以降が必要です。
  • Databricks Runtime 14.0 以下の OpenSharing ではサポートされていません。
  • TIMESTAMP_NTZ 型は、Delta/Parquet/ORC/AVRO/JSON/CSV などのファイル ソースでサポートされています。 ただし、TIMESTAMP_NTZ 列を含む JSON/CSV ファイルのスキーマ推論には制限があります。 下位互換性のために、spark.read.csv(...) または spark.read.json(...) から推定される既定のタイムスタンプ型は、TIMESTAMP_NTZ ではなく TIMESTAMP 型になります。

既存のデルタ湖テーブルで TIMESTAMP_NTZ(9) 列を使用するには、 timestampNtz 機能と timestampPrecision 機能の両方を有効にしてください:

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

例

> 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 CAST('1908-03-15 10:1:17' AS TIMESTAMP WITHOUT TIME ZONE)
  1908-03-15 10:01:17

> SELECT '1908-03-15 10:1:17'::TIMESTAMP WITHOUT TIME ZONE)
  1908-03-15 10:01:17

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

> SELECT typeof(TIMESTAMP_NTZ'2026-08-18 14:30:45.123456789');
  TIMESTAMP_NTZ(9)

> SELECT CAST('2026-08-18 14:30:45.123456789' AS TIMESTAMP_NTZ(9));
  2026-08-18 14:30:45.123456789

TIMESTAMP_NTZ(9) テーブルの制限

  • アイスバーグテーブルはサポートされていません。
  • Delta Lakeのテーブルで生成された列はサポートされていません。
  • デルタ湖のテーブルにおける液体クラスタリングカラムはサポートされていません。