Wenn Sie Ihre Abfrage im SQL-Editor eingeben oder eine Berechnungerstellen, verwenden Sie Presto SQL-Syntax. Zum Anpassen oder Berechnen von Datums- oder Zeitstempelwerten können Sie diese allgemeinen Funktionen nutzen.
Hinweis: Laufzeitvariablen in Chains, wie z.B. die für Datums- und Zeittransformationen verwendeten, verwenden Python strftime und nicht Presto SQL.
AT ZEITZONE
Um die Zeitzone eines Zeitstempels zu konvertieren, verwenden Sie den Operator AT TIME ZONE
. Hier einige Beispiele:
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
Tipp: In den meisten Gebieten können Sie America/Los_Angeles
für die pazifische Zeitzone, America/Denver
für Mountain, America/Chicago
für Central und America/New_York
für Eastern verwenden.
AKTUELLES_DATUM
Um das Datum zurückzugeben, an dem die Abfrage läuft, verwenden Sie die Funktion CURRENT_DATE
. Zum Beispiel: SELECT CURRENT_DATE()
.
DATUM
Um einen Wert in einen Datumswert umzuwandeln, verwenden Sie die Funktion DATE
als DATE(Wert).
DATE_ADD
Um einen Intervalleinheitswert zu einem Datum oder Zeitstempel hinzuzufügen, verwenden Sie die Funktion DATE_ADD
als DATE_ADD(unit, value, timestamp). Für Einheit, DATE_ADD
unterstützt:
millisekunde
zweite
minute
stunde
tag
woche
Monat
quartal
Jahr
Beispiel: SELECT DATE_ADD('day', 10, "2020-06-15")
liefert 2020-06-25.
Hinweis: Um eine IS08601-formatierte Zeichenkette als Datumswert zu analysieren, verwenden Sie die Funktion FROM_ISO8601_DATE
, z. B. FROM_ISO8601_DATE('2020-06-15')
.
DATE_DIFF
Um die Differenz von zwei Datums- oder Zeitstempelwerten zu ermitteln, verwenden Sie die Funktion DATE_DIFF
als DATE_DIFF(unit, timestamp1, timestamp 2). Für die Einheit unterstützt DATE_DIFF
die gleichen Werte wie DATE_ADD
. Beispiel: SELECT DATE_DIFF('day', "2020-06-15", "2020-06-25")
liefert 10.
Beachten Sie, dass DATE_DIFF
nur für Date-Objekte gilt und Sie möglicherweise andere Objekte casten müssen, damit diese Funktion funktioniert.
Hinweis: Um eine IS08601-formatierte Zeichenkette als Datumswert zu analysieren, verwenden Sie die Funktion FROM_ISO8601_DATE
, z. B. FROM_ISO8601_DATE('2020-06-15')
.
DATE_FORMAT
Um einen Datums- oder Zeitstempelwert in einem bestimmten Format zurückzugeben, verwenden Sie die Funktion DATE_FORMAT
als DATE_FORMAT(timestamp, format). Für das Format , DATE_FORMAT
wird eine Kombination dieser Werte unterstützt:
Formatieren | Beschreibung |
---|---|
%a |
Abgekürzter Name des Wochentags, vonSun bis Sat |
%b |
Abgekürzter Monatsname, von Jan bis Dez |
%c |
Numerischer Monatswert, von 1 bis 12 |
%D
|
Numeric day of the month with its suffix, such as 1st ,
2nd , 3rd ...
|
%d |
Numerischer Tag des Monats als zweistellige Zahl, von 01 bis 31 |
%e |
Numerischer Tag des Monats, von 1 bis 31 |
%f |
Millisekunde, von 000000 bis 999000 zum Drucken; von 0 bis 999999999 zum Parsen |
%H |
Stunde der 24-Stunden-Uhr als zweistellige Zahl, von 00 bis 23 |
%h oder %I |
Stunde der 12-Stunden-Uhr als zweistellige Zahl, von 00 bis 12 |
%i |
Minute, von 00 bis 59 |
%j |
Tag des Jahres als dreistellige Zahl, von 000 bis 366 |
%k |
Stunde der 24-Stunden-Uhr, von 0 bis 23 |
%l |
Stunde der 12-Stunden-Uhr, von 0 bis 12 |
%M |
Monatsname, von Januar bis Dezember |
%m |
Numerischer Monatswert als zweistellige Zahl, von 01 bis 12 |
%p |
AM oder PM der 12-Stunden-Uhr |
%r |
Zeit auf 12-Stunden-Uhr, als hh:mm:ss gefolgt von AM oder PM |
%s oder %S |
Zweitens, von 00 bis 59 |
%T |
Zeit auf 24-Stunden-Uhr, als 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 |
Woche des Jahres, von 01 bis 53 , wobei Montag der erste Tag der Woche ist; verwendet mit %x |
%W |
Name des Wochentags, vonSonntag bis Samstag |
%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 |
Jahr, wenn der Montag der erste Tag der Woche ist; verwendet mit %v |
%Y |
Jahr, als vierstellige Zahl |
%y |
Jahr, als zweistellige Zahl Hinweis: Beim Parsing geht |
%% |
Das wörtliche % Zeichen |
Hinweis: Um den Wochentag als Zahl zu erhalten, von 1
bis 7
, verwenden Sie die Funktion DAY_OF_WEEK
.
DAY
Um den Tag des Monats - als Zahl von 1 bis 31 - aus einem Datum oder Zeitstempel zu ermitteln, verwenden Sie die Funktion DAY
als DAY(date_value). Zum Beispiel: SELECT DAY("2020-06-15")
gibt 15zurück.
WOCHENTAG
Um den Tag der Woche - als Zahl von 1
für Montag bis 7
für Sonntag - aus einem Datum oder Zeitstempel zu ermitteln, verwenden Sie die Funktion DAY_OF_WEEK
als DAY_OF_WEEK(date_value).
EOMONTH
Um die Zahl des letzten Tages des Monats aus einem Datum oder Zeitstempel zu ermitteln, verwenden Sie die Funktion EOMONTH
, z. B. EOMONTH(date_value, month_number_value).
VON_ISO8601_DATUM
Um eine ISO8601-formatierte Zeichenkette als Datum zu analysieren, verwenden Sie die Funktion FROM_ISO8601_DATE
, z. B. FROM_ISO8601_DATE(date_value).
INTERVALL
Um Intervalleinheiten für ein Datum oder einen Zeitstempel zu addieren oder zu subtrahieren, verwenden Sie die Funktion INTERVAL
mit dem Operator +
oder -
, z. B. +/- INTERVAL value unit. Für unit, INTERVAL
unterstützt die gleichen Werte wie DATE_ADD
. Hier einige Beispiele:
-
DATE '2020-08-08' + INTERVAL '2' day
liefert 2020-08-10. -
TIMESTAMP '2020-08-08 01:00' + INTERVAL '29' Stunden
gibt zurück 2020-08-09 06:00:00.000. -
INTERVALL '2' Tag + INTERVALL '3' Stunde
liefert 2 03:00:00.000. -
TIMESTAMP '2020-10-31 01:00' - INTERVAL '1' month
liefert 2020-09-30 01:00:00.000.
MONAT
Um den Monat - als Zahl von 1 bis 12 - aus einem Datum oder Zeitstempel zurückzugeben, verwenden Sie die Funktion MONAT
als MONAT(datumswert).Beispiel: SELECT MONTH("2020-06-15")
liefert 6.
JETZT
Um den Zeitstempel zurückzugeben, wenn die Abfrage läuft, verwenden Sie die Funktion NOW
. Zum Beispiel: SELECT NOW()
.
QUARTAL
Um das Quartal des Jahres - als Zahl von 1 bis 4 - aus einem Datum oder Zeitstempel zu ermitteln, verwenden Sie die Funktion QUARTER
als QUARTER(date_value).Beispiel: SELECT QUARTER("2020-06-15")
liefert 2.
JAHR
Um das Jahr - als Zahl von 1000 bis 9990 - aus einem Datum oder Zeitstempel zurückzugeben, verwenden Sie die Funktion YEAR
als YEAR(date_value).Zum Beispiel: SELECT YEAR("2020-06-15")
gibt 2020zurück.