Når du skriver inn spørringen din i SQL Editor eller oppretter en beregning, bruker du Presto SQL-syntaks. Hvis du vil justere eller utføre beregninger på dato- eller tidsstempelverdier, kan du ha nytte av disse vanlige funksjonene.
Merk: Runtime-variabler i Chains, for eksempel de som brukes til dato- og tidstransformasjoner, bruker Python strftime i stedet for Presto SQL.
PÅ TIDSSONE
For å konvertere tidssonen til et tidsstempel, bruker du operatøren AT TIME ZONE. For eksempel:
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
Tips: I de fleste områder kan du bruke America/Los_Angeles for tidssonen Pacific, America/Denver for Mountain, America/Chicago for Central, og America/New_York for Eastern.
CURRENT_DATE
For å få tilbake datoen når spørringen kjøres, bruker du funksjonen CURRENT_DATE. For eksempel SELECT CURRENT_DATE().
DATO
For å konvertere en verdi til en datoverdi bruker du funksjonen DATE som DATE(verdi).
DATE_ADD
Hvis du vil legge til en intervallenhetsverdi til en dato eller et tidsstempel, bruker du funksjonen DATE_ADD som DATE_ADD(unit, value, timestamp). For unit, DATE_ADD støtter:
millisekundandreminutttimedagukemånedkvartalår
For eksempel, SELECT DATE_ADD('day', 10, "2020-06-15") returnerer 2020-06-25.
Merk: For å analysere en IS08601-formatert streng som datoverdi, bruker du funksjonen FROM_ISO8601_DATE, for eksempel FROM_ISO8601_DATE('2020-06-15').
DATE_DIFF
For å returnere differansen mellom to dato- eller tidsstempelverdier bruker du funksjonen DATE_DIFF som DATE_DIFF(unit, timestamp1, timestamp 2). For unit, DATE_DIFF støtter de samme verdiene som DATE_ADD. For eksempel, SELECT DATE_DIFF('day', "2020-06-15", "2020-06-25") returnerer 10.
Vær oppmerksom på at DATE_DIFF bare gjelder for Date-objekter, og at det kan være nødvendig å caste andre objekter for at denne funksjonen skal fungere.
Merk: For å analysere en IS08601-formatert streng som datoverdi, bruker du funksjonen FROM_ISO8601_DATE, for eksempel FROM_ISO8601_DATE('2020-06-15').
DATO_FORMAT
For å returnere en dato- eller tidsstempelverdi i et bestemt format, bruker du funksjonen DATE_FORMAT som DATE_FORMAT(timestamp, format). For format, DATE_FORMAT støtter en kombinasjon av disse verdiene:
| Format | Beskrivelse |
|---|---|
%a |
Forkortet navn på ukedagen, fraSun til Sat |
%b |
Forkortet månedsnavn, fra Jan til Dec |
%c |
Numerisk månedsverdi, fra 1 til 12 |
%D
|
Numeric day of the month with its suffix, such as 1st,
2nd, 3rd...
|
%d |
Numerisk dag i måneden som et tosifret tall, fra 01 til 31 |
%e |
Numerisk dag i måneden, fra 1 til 31 |
%f |
Millisekund, fra 000000 til 999000 for utskrift; fra 0 til 999999999 for parsing |
%H |
Timen på 24-timers klokken som et tosifret tall, fra 00 til 23 |
%h eller %I |
Timen på 12-timers klokken som et tosifret tall, fra 00 til 12 |
%i |
Minutt, fra 00 til 59 |
%j |
Årets dag som et tresifret tall, fra 000 til 366 |
%k |
Time i 24-timers klokke, fra 0 til 23 |
%l |
Time i 12-timers klokke, fra 0 til 12 |
%M |
Månedsnavn, fra januar til desember |
%m |
Numerisk månedsverdi som et tosifret tall, fra 01 til 12 |
%p |
AM eller PM av 12-timers klokke |
%r |
Tid på 12-timers klokke, som hh:mm:ss etterfulgt av AM eller PM |
%s eller %S |
For det andre, fra 00 til 59 |
%T |
Tid på 24-timers klokke, som 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 |
Uke i året, fra 01 til 53, der mandag er den første dagen i uken; brukes med %x |
%W |
Navn på ukedag, frasøndag til lørdag |
%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 |
År for når mandag er den første dagen i uken; brukes med %v |
%Y |
Årstall, som et firesifret tall |
%y |
Årstall, som et tosifret tall Merk: Ved parsing, |
%% |
Det bokstavelige % tegnet |
Merk: For å returnere ukedagen som et tall, fra 1 til 7, bruk funksjonen DAY_OF_WEEK.
DAG
Hvis du vil returnere dagen i måneden - som et tall fra 1 til 31 - fra en dato eller et tidsstempel, bruker du funksjonen DAY som DAY(date_value). For eksempel, SELECT DAY("2020-06-15") returnerer 15.
DAG_OF_WEEK
For å returnere ukedagen - som et tall fra 1 for mandag til 7 for søndag - fra en dato eller et tidsstempel, bruker du funksjonen DAY_OF_WEEK som DAY_OF_WEEK(date_value).
EOMONTH
Hvis du vil returnere nummeret på den siste dagen i måneden fra en dato eller et tidsstempel, bruker du funksjonen EOMONTH, for eksempel EOMONTH(date_value, month_number_value).
FRA_ISO8601_DATO
Hvis du vil analysere en ISO8601-formatert streng som en dato, bruker du funksjonen FROM_ISO8601_DATE, for eksempel FROM_ISO8601_DATE(date_value).
INTERVAL
Hvis du vil legge til eller trekke fra intervallenhetsverdier for en dato eller et tidsstempel, bruker du funksjonen INTERVAL med en + eller - -operator, for eksempel +/- INTERVAL value unit. For unit, INTERVAL støtter de samme verdiene som DATE_ADD. For eksempel:
-
DATE '2020-08-08' + INTERVAL '2' dayreturnerer 2020-08-10. -
TIMESTAMP '2020-08-08 01:00' + INTERVAL '29' hourreturnerer 2020-08-09 06:00:00.000. -
INTERVAL '2' day + INTERVAL '3' hourreturns 2 03:00:00.000. -
TIMESTAMP '2020-10-31 01:00' - INTERVAL '1' monthreturns 2020-09-30 01:00:00.000.
MÅNED
Hvis du vil returnere måneden - som et tall fra 1 til 12 - fra en dato eller et tidsstempel, bruker du funksjonen MONTH som MONTH(date_value). For eksempel, SELECT MONTH("2020-06-15") returnerer 6.
NÅ
For å returnere tidsstempelet når spørringen kjøres, bruker du funksjonen NOW. For eksempel SELECT NOW().
KVARTAL
Hvis du vil returnere kvartalet i året - som et tall fra 1 til 4 - fra en dato eller et tidsstempel, bruker du funksjonen QUARTER som QUARTER(date_value). For eksempel, SELECT QUARTER("2020-06-15") returnerer 2.
ÅR
Hvis du vil returnere året - som et tall fra 1000 til 9990 - fra en dato eller et tidsstempel, bruker du funksjonen YEAR som YEAR(date_value). For eksempel, SELECT YEAR("2020-06-15") returnerer 2020.