Quando inserisci la tua query nell'Editor SQL o crei un calcolo, utilizzi la sintassi Presto SQL. Per regolare o eseguire calcoli sui valori di data e ora, potresti trovare utili queste funzioni comuni.
Nota: le variabili di runtime nelle catene, come quelle utilizzate per le trasformazioni di data e ora, utilizzano Python strftime piuttosto che Presto SQL.
AT TIME ZONE
Per convertire il fuso orario di un timestamp, usa l'operatore AT TIME ZONE. Ad esempio:
SELECT cast(timestamp '2020-10-31 01:00 UTC' as VARCHAR) 2020-10-31 01:00:00.000 UTC SELECT cast(timestamp '2020-10-31 01:00 UTC' AT TIME ZONE 'America/Los_Angeles' as VARCHAR) 2020-10-30 18:00:00.000 America/Los_Angeles
Suggerimento: Nella maggior parte delle aree, puoi utilizzare America/Los_Angeles per il fuso orario del Pacifico, America/Denver per quello della Montagna, America/Chicago per quello Centrale e America/New_York per quello Orientale.
DATA_ATTUALE
Per ottenere la data di esecuzione della query, usa la funzione CURRENT_DATE. Ad esempio, SELECT CURRENT_DATE().
DATA
Per convertire un valore in un valore di data, usa la funzione DATE come DATE(valore).
DATE_ADD
Per aggiungere un valore di unità di intervallo a una data o a un timestamp, usa la funzione DATE_ADD come DATE_ADD(unità, valore, timestamp). Per unità, DATE_ADD supporta:
millisecondosecondominutooragiornosettimanamesetrimestreanno
Ad esempio, SELECT DATE_ADD('giorno', 10, "2020-06-15") restituisce 2020-06-25.
Nota: Per analizzare una stringa formattata IS08601 come valore di data, usa la funzione FROM_ISO8601_DATE, ad esempio FROM_ISO8601_DATE('2020-06-15').
DATE_DIFF
Per restituire la differenza di due valori di data o timestamp, usa la funzione DATE_DIFF come DATE_DIFF(unit, timestamp1, timestamp 2). Per l'unità , DATE_DIFF supporta gli stessi valori di DATE_ADD. Ad esempio, SELECT DATE_DIFF('day', "2020-06-15", "2020-06-25") restituisce 10.
Nota che DATE_DIFF si applica solo agli oggetti Date e potrebbe essere necessario eseguire il cast di altri oggetti affinché questa funzione funzioni.
Nota: Per analizzare una stringa formattata IS08601 come valore di data, usa la funzione FROM_ISO8601_DATE, ad esempio FROM_ISO8601_DATE('2020-06-15').
DATE_FORMAT
Per restituire un valore di data o timestamp in un formato prestabilito, usa la funzione DATE_FORMAT come DATE_FORMAT(timestamp, format). Per il formato , DATE_FORMAT supporta una combinazione di questi valori:
| Formato | Descrizione |
|---|---|
%a |
Nome abbreviato del giorno della settimana, daSun a Sat |
%b |
Nome del mese abbreviato, da gen. a dic. |
%c |
Valore numerico del mese, da 1 a 12 |
%D
|
Numeric day of the month with its suffix, such as 1st,
2nd, 3rd...
|
%d |
Giorno numerico del mese come numero a due cifre, da 01 a 31 |
%e |
Giorno numerico del mese, da 1 a 31 |
%f |
Millisecondo, da 000000 a 999000 per la stampa; da 0 a 999999999 per l'analisi |
%H |
Ora dell'orologio di 24 ore come numero a due cifre, da 00 a 23 |
%h o %I |
Ora dell'orologio a 12 ore come numero a due cifre, da 00 a 12 |
%i |
Minuti, da 00 a 59 |
%j |
Giorno dell'anno come numero a tre cifre, da 000 a 366 |
%k |
Ora dell'orologio di 24 ore, da 0 a 23 |
%l |
Ora dell'orologio a 12 ore, da 0 a 12 |
%M |
Nome del mese, da gennaio a dicembre |
%m |
Valore numerico del mese come numero a due cifre, da 01 a 12 |
%p |
AM o PM di 12 ore di orologio |
%r |
Orario su 12 ore, come hh:mm:ss seguito da AM o PM |
%s o %S |
Secondo, da 00 a 59 |
%T |
Ora su un orologio di 24 ore, come hh:mm:ss |
%U
|
Week of the year, from 00 to 53,
where Sunday is the first day of the week
|
%u
|
Week of the year, from 00 to 53,
where Monday is the first day of the week
|
%V
|
Week of the year, from 01 to 53,
where Sunday is the first day of the week; used with %X
|
%v |
Settimana dell'anno, da 01 a 53, dove il lunedì è il primo giorno della settimana; utilizzato con %x |
%W |
Nome del giorno della settimana, daDomenica a Sabato |
%w
|
Day of the week, from 0 to 6,
where Sunday is the first day of the week
|
%X
|
Year for when Sunday is the first day of the week; used with %V
|
%x |
Anno in cui il lunedì è il primo giorno della settimana; utilizzato con %v |
%Y |
Anno, come numero a quattro cifre |
%y |
Anno, come numero a due cifre Nota: Nell'analisi, |
%% |
Il carattere letterale % |
Nota: Per restituire il giorno della settimana come numero, da 1 a 7, usa la funzione DAY_OF_WEEK.
GIORNO
Per restituire il giorno del mese - come numero da 1 a 31 - da una data o un timestamp, usa la funzione DAY come DAY(date_value). Ad esempio, SELECT DAY("2020-06-15") restituisce 15.
GIORNO_DI_SETTIMANA
Per restituire il giorno della settimana - come numero da 1 per il lunedì a 7 per la domenica - da una data o un timestamp, usa la funzione DAY_OF_WEEK come DAY_OF_WEEK(date_value).
EOMONTH
Per restituire il numero dell'ultimo giorno del mese da una data o da un timestamp, usa la funzione EOMONTH, ad esempio EOMONTH(date_value, month_number_value).
FROM_ISO8601_DATE
Per analizzare una stringa in formato ISO8601 come data, usa la funzione FROM_ISO8601_DATE, come FROM_ISO8601_DATE(date_value).
INTERVALLO
Per aggiungere o sottrarre valori di unità di intervallo per una data o un timestamp, usa la funzione INTERVALLO con un operatore + o -, come +/- INTERVALLO valore unità. Per unità, INTERVALLO supporta gli stessi valori di DATE_ADD. Ad esempio:
-
DATE '2020-08-08' + INTERVALLO '2' giornorestituisce 2020-08-10. -
TIMESTAMP '2020-08-08 01:00' + INTERVALLO '29' orarestituisce 2020-08-09 06:00:00.000. -
INTERVALLO '2' giorno + INTERVALLO '3' orarestituisce 2 03:00:00.000. -
TIMESTAMP '2020-10-31 01:00' - INTERVALLO '1' meserestituisce 2020-09-30 01:00:00.000.
MESE
Per restituire il mese - come numero da 1 a 12 - da una data o da un timestamp, usa la funzione MONTH come MONTH(date_value). Ad esempio, SELECT MONTH("2020-06-15") restituisce 6.
ADESSO
Per restituire il timestamp al momento dell'esecuzione della query, usa la funzione NOW. Ad esempio, SELEZIONA ORA().
QUARTO
Per ottenere il trimestre dell'anno - come numero da 1 a 4 - da una data o da un timestamp, usa la funzione QUARTER come QUARTER(date_value). Ad esempio, SELECT QUARTER("2020-06-15") restituisce 2.
ANNO
Per restituire l'anno - come numero da 1000 a 9990 - da una data o un timestamp, usa la funzione YEAR come YEAR(date_value). Ad esempio, SELECT YEAR("2020-06-15") restituisce 2020.