Condividi tramite


Tipo diTIMESTAMP_NTZ

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime 13.3 LTS e versioni successive

Rappresenta i valori che comprendono valori dei campi anno, mese, giorno, ora, minuto e secondo. Tutte le operazioni vengono eseguite senza prendere in considerazione alcun fuso orario.

Questa funzionalità è disponibile in anteprima pubblica. Vedere la sezione Note per le funzionalità non supportate.

Per usare questa funzionalità in Delta Lake, è necessario abilitare il supporto per la tabella. Il supporto delle funzionalità viene abilitato automaticamente quando si crea una nuova tabella Delta con una colonna di tipo TIMESTAMP_NTZ. Non viene abilitata automaticamente quando si aggiunge una colonna di tipo TIMESTAMP_NTZ a una tabella esistente. Per abilitare il supporto per le colonne TIMESTAMP_NTZ, il supporto per la funzionalità deve essere abilitato in modo esplicito per la tabella esistente.

L'abilitazione del supporto consente di aggiornare il protocollo di tabella. Si veda In che modo Azure Databricks gestisce la compatibilità delle funzionalità di Delta Lake?. Il seguente comando abilita questa funzionalità:

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

Sintassi

TIMESTAMP_NTZ

Limiti

L'intervallo di timestamp supportati è da -290308-12-21 BCE 19:59:06 a +294247-01-10 CE 04:00:54.

Valori letterali

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]' }
  • + o -: segno facoltativo. - indica l'opzione BCE, + indica CE (impostazione predefinita).
  • yyyy: un anno che comprende almeno quattro cifre.
  • [m]m: un mese di una o due cifre compreso tra 01 e 12.
  • [d]d: un giorno di una o due cifre compreso tra 01 e 31.
  • h[h]: un'ora di una o due cifre compresa tra 00 e 23.
  • m[m]: un minuto di una o due cifre compreso tra 00 e 59.
  • s[s]: secondo di una o due cifre compreso tra 00 e 59.
  • [ms][ms][ms][us][us][us]: fino a 6 cifre di secondi frazionari.

Se i componenti mese o giorno non vengono specificati, per impostazione predefinita è 1. Se i componenti ora, minuto o secondo non vengono specificati per impostazione predefinita su 0.

Se il valore letterale non rappresenta un timestamp corretto, Azure Databricks genera un errore.

Note

TIMESTAMP_NTZ presenta le limitazioni seguenti:

  • Il supporto di Photon richiede Databricks Runtime 15.4 e versioni successive.
  • Non supportato nelle origini dati di Databricks usate nei driver open source di Power BI, Tableau, Databricks JDBC/ODBC o Databricks.
  • Non supportato nella condivisione delta in Databricks Runtime 14.0 e versioni successive.
  • Il tipo TIMESTAMP_NTZ è supportato nelle origini file, tra cui Delta/Parquet/ORC/AVRO/JSON/CSV. Tuttavia, esiste una limitazione sull'inferenza dello schema per i file JSON/CSV con colonne TIMESTAMP_NTZ. Per la compatibilità con le versioni precedenti, il tipo timestamp dedotto predefinito da spark.read.csv(...) o spark.read.json(...) sarà il tipo TIMESTAMP anziché TIMESTAMP_NTZ.

Esempi

> 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