Modelli datetime

Si applica a:check marked yes Databricks SQL check marked yes Databricks Runtime

Esistono diversi scenari comuni per l'utilizzo di datetime in Azure Databricks:

Tabella criteri

Azure Databricks usa lettere di modello nella tabella seguente per l'analisi e la formattazione di data e timestamp:

Simbolo Significato Presentazione Esempi
G era testo ANNUNCIO; Anno Domini
y year year 2020; 20
D day-of-year number(3) 189
M/L mese dell'anno mese 7; 07; Lug; Luglio
g day-of-month number(3) 28
Q/q trimestre dell'anno numero/testo 3; 03; Q3; Terzo trimestre
E day-of-week testo Mar; Martedì
F allineato giorno della settimana nel mese number(1) 3
a am-pm-of-day am-pm Pomeriggio
h orologio-ora-di-am-pm (1-12) number(2) 12
K ora di am-pm (0-11) number(2) 0
k ora del giorno (1-24) number(2) 0
H ora del giorno (0-23) number(2) 0
m minute-of-hour number(2) 30
s second-of-minute number(2) 55
S frazione di secondo frazione 978
V ID fuso orario zone-id America/Los_Angeles; Z; -08:30
Z nome fuso orario zone-name Pacific Standard Time; PST
O offset di zona localizzato offset-O GMT +8; GMT +08:00; UTC-08:00;
X offset di zona 'Z' per zero offset-X Z; -08; -0830; -08:30; -083015; -08:30:15;
x offset di zona offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15;
Z offset di zona offset-Z +0000; -0800; -08:00;
' escape per il testo delimiter
'' virgoletta singola literal '
[ inizio sezione facoltativa
] fine sezione facoltativa

Il conteggio delle lettere di motivo determina il formato.

  • Testo: lo stile del testo viene determinato in base al numero di lettere di motivo utilizzate. Meno di 4 lettere di motivo useranno la forma di testo breve, in genere un'abbreviazione, ad esempio il lunedì del giorno della settimana potrebbe restituire "Mon". Esattamente 4 lettere di motivo useranno il formato full-text, in genere la descrizione completa, ad esempio, il giorno della settimana lunedì potrebbe restituire "Monday". 5 o più lettere avranno esito negativo.

  • Number(n): n qui rappresenta il numero massimo di lettere che questo tipo di modello datetime può essere usato. Se il numero di lettere è uno, il valore viene restituito usando il numero minimo di cifre e senza spaziatura interna. In caso contrario, il conteggio delle cifre viene usato come larghezza del campo di output, con il valore con riempimento zero in base alle esigenze.

  • Numero/testo: se il numero di lettere del criterio è 3 o superiore, usare le regole di testo precedenti. In caso contrario, usare le regole Numero sopra riportate.

  • Frazione: usare uno o più caratteri contigui 'S' (fino a 9), ad esempio SSSSSS, per analizzare e formattare la frazione di secondo. Per l'analisi, la lunghezza della frazione accettabile può essere [1, il numero di 'S' contiguo]. Per la formattazione, la lunghezza della frazione viene riempita in base al numero di 'S' contigui con zeri. Azure Databricks supporta datetime di precisione micro-of-second, che ha fino a 6 cifre significative, ma può analizzare nano-of-second con parte superata troncata.

  • Anno: il conteggio delle lettere determina la larghezza minima del campo sotto la quale viene utilizzata la spaziatura interna. Se il conteggio delle lettere è due, viene utilizzato un formato a due cifre ridotto. Per la stampa, restituisce le due cifre più a destra. Per l'analisi, verrà analizzato usando il valore di base 2000, con conseguente anno compreso nell'intervallo compreso tra 2000 e 2099 inclusi. Se il conteggio delle lettere è minore di quattro (ma non due), il segno viene restituito solo per anni negativi. In caso contrario, il segno viene restituito se la larghezza del riquadro viene superata quando 'G' non è presente. 7 o più lettere avranno esito negativo.

  • Mese: segue la regola numero/testo. Il modulo di testo dipende dalle lettere 'M' : indica il formato "standard" ed 'L' è per il formato "autonomo". Queste due forme sono diverse solo in alcune lingue. Ad esempio, in russo, 'Июль' è la forma autonoma di luglio e 'Июля' è il formato standard. Ecco alcuni esempi per tutte le lettere di motivo supportate:

    • 'M' o 'L': numero di mese in un anno a partire da 1. Non esiste alcuna differenza tra 'M' e 'L'. Il mese da 1 a 9 viene stampato senza riempimento.

      > SELECT date_format(date '1970-01-01', 'M');
        1
      
      > SELECT date_format(date '1970-12-01', 'L');
        12
      
    • 'MM' o 'LL': numero di mese in un anno a partire da 1. La spaziatura interna zero viene aggiunta per i mesi da 1 a 9.

      > SELECT date_format(date '1970-1-01', 'LL');
        01
      
      > SELECT date_format(date '1970-09-01', 'MM');
        09
      
    • 'MMM': rappresentazione testuale breve nel formato standard. Il modello di mese deve far parte di un modello di data non solo di un mese autonomo, ad eccezione delle impostazioni locali in cui non esiste alcuna differenza tra forme autonome come in inglese.

      > SELECT date_format(date '1970-01-01', 'd MMM');
        1 Jan
      
      -- Passing a format pattern to to_csv()
      > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'dd MMM', 'locale', 'RU'));
        01 янв.
      
    • 'MMMM': rappresentazione full-textual month nel formato standard. Viene usato per l'analisi/formattazione dei mesi come parte di date/timestamp.

      > SELECT date_format(date '1970-01-01', 'd MMMM');
        1 January
      
      -- Passing a format pttern to to_csv()
      > SELECT to_csv(named_struct('date', date '1970-01-01'), map('dateFormat', 'd MMMM', 'locale', 'RU'));
        1 января
      
  • am-pm: restituisce l'am-pm-of-day. Il numero di lettere del criterio deve essere 1.

  • ID zona (V): restituisce l'ID del fuso orario. Il numero di lettere del criterio deve essere 2.

  • Nomi di zona(z): restituisce il nome testuale visualizzato dell'ID del fuso orario. Se il numero di lettere è uno, due o tre, viene restituito il nome breve. Se il numero di lettere è quattro, viene restituito il nome completo. Cinque o più lettere avranno esito negativo.

  • Offset X e x: formatta l'offset in base al numero di lettere di motivo. Una lettera restituisce solo l'ora, ad esempio '+01', a meno che il minuto non sia diverso da zero nel qual caso viene restituito anche il minuto, ad esempio '+0130'. Due lettere restituisce l'ora e il minuto, senza due punti, ad esempio '+0130'. Tre lettere restituisce l'ora e il minuto, con due punti, ad esempio '+01:30'. Quattro lettere restituisce l'ora e il minuto e il secondo facoltativo, senza due punti, ad esempio "+013015". Cinque lettere restituisce l'ora e il minuto e il secondo facoltativo, con due punti, ad esempio '+01:30:15'. Sei o più lettere avranno esito negativo. La lettera di motivo 'X' (maiuscola) restituirà 'Z' quando l'offset da restituire sarebbe zero, mentre la lettera di motivo 'x' (minuscola) restituirà '+00', '+0000' o '+00:00'.

  • Offset O: formatta l'offset localizzato in base al numero di lettere di motivo. Una lettera restituisce la forma breve dell'offset localizzato, che è testo offset localizzato, ad esempio 'GMT', con ora senza zero iniziale, minuto facoltativo a 2 cifre e secondo se diverso da zero e due punti, ad esempio 'GMT+8'. Quattro lettere restituisce il formato completo, che è testo offset localizzato, ad esempio "GMT, con campo ora e minuto a 2 cifre, secondo campo facoltativo se diverso da zero e due punti, ad esempio "GMT +08:00". Qualsiasi altro conteggio di lettere avrà esito negativo.

  • Offset Z: formatta l'offset in base al numero di lettere di motivo. Una, due o tre lettere restituisce l'ora e il minuto, senza due punti, ad esempio '+0130'. L'output è '+0000' quando l'offset è zero. Quattro lettere restituisce la forma completa di offset localizzato, equivalente a quattro lettere di Offset-O. L'output è il testo di offset localizzato corrispondente se l'offset è zero. Cinque lettere restituisce l'ora, il minuto, con il secondo facoltativo se diverso da zero, con due punti. Restituisce "Z" se l'offset è zero. Sei o più lettere avranno esito negativo.

  • Inizio e fine della sezione facoltativa: usare [] per definire una sezione facoltativa e forse annidata. Durante la formattazione, tutti i dati validi vengono restituiti anche nella sezione facoltativa. Durante l'analisi, l'intera sezione potrebbe non essere presente nella stringa analizzata. Una sezione facoltativa viene avviata e [ terminata usando ] (o alla fine del modello).

  • I simboli di 'E', 'F', 'q' e 'Q' possono essere usati solo per la formattazione datetime, ad esempio date_format. Non sono consentite usate per l'analisi datetime, ad esempio to_timestamp.