Tipo diTIMESTAMP

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Rappresenta i valori che comprendono i valori di campi anno, mese, giorno, ora, minuto e secondo, con il fuso orario locale della sessione. Il valore timestamp rappresenta un punto assoluto nel tempo.

Sintassi

TIMESTAMP [ (p) ] | TIMESTAMP_LTZ [ (p) ]
  • p: Una precisione opzionale da 6 fino a 9, che rappresenta il numero di cifre frazionarie di secondo. Il valore predefinito è 6. Specifica 9 per precisione in nanosecondi.

Importante

TIMESTAMP(p) con precisione 7–9 è in Beta.

Limiti

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

Note

Quando si scrive a Delta o Parquet, TIMESTAMP(p) valori con precisione superiore 6 a sono limitati agli anni 1677-2262.

Valori letterali

TIMESTAMP timestampString

TIMESTAMP_LTZ 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][zoneId]' }
  • + 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][ns][ns][ns]: Fino a 9 cifre di frazioni di secondo. Specifica esattamente nove cifre frazionarie per costruire un TIMESTAMP(9) letterale.

zoneId:

  • Z - Fuso orario Zulu UTC+0
  • +|-[h]h:[m]m
  • ID con uno dei prefissi UTC+, UTC-, GMT+, GMT-, UT+ o UT-e un suffisso nei formati:
    • +|-h[h]
    • +|-hh[:]mm
    • +|-hh:mm:ss
    • +|-hhmmss
  • ID di zona in base all'area nel formato <area>/<city>, ad esempio Europe/Paris.

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 non viene specificato, zoneId per impostazione predefinita viene impostato il fuso orario della sessione,

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

Note

I timestamp con fuso orario locale vengono normalizzati internamente e resi persistenti in formato UTC. Ogni volta che viene estratto il valore o una parte di esso, viene applicato il fuso orario della sessione locale.

Per utilizzare TIMESTAMP(9) le colonne nelle tabelle di Delta Lake, abilita la funzione di precisione timestamp:

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

Abilitando questa funzione si aggiorna il protocollo della tabella. I client che non supportano la funzionalità non possono leggere o scrivere la tabella. Vedere Compatibilità e protocolli delle funzionalità delta Lake.

Esempi

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

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

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

> SELECT current_timezone(), TIMESTAMP'2021-7-1T8:43:28UTC+3';
  America/Los_Angeles 2021-06-30 22:43:28

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

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

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

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

TIMESTAMP(9) Limitazioni della tabella

  • I tavoli iceberg non sono supportati.
  • Le colonne generate nelle tabelle Delta Lake non sono supportate.
  • Le colonne di aggregazione liquida nei tavoli Delta Lake non sono supportate.