Datumsbestandteil-Funktionen
Die Funktionen date_part, date_trunc und date_diff können verwendet werden, um Bestandteile temporaler Typen wie TIMESTAMP, TIMESTAMPTZ, DATE und INTERVAL zu extrahieren oder zu manipulieren.
Die zu extrahierenden oder zu manipulierenden Bestandteile werden durch eine der Zeichenketten in den folgenden Tabellen angegeben.
Die Beispielspalte liefert die entsprechenden Bestandteile des Zeitstempels 2021-08-03 11:59:44.123456.
Nur die Einträge der ersten Tabelle können aus INTERVALs extrahiert oder zum Aufbau von Intervallen verwendet werden.
Mit Ausnahme von
julianundepoch, dieDOUBLEs liefern, werden alle Bestandteile als Ganzzahlen extrahiert. Da es in DuckDB keine unendlichen Ganzzahlwerte gibt, werden für unendliche ZeitstempelNULLs zurückgegeben.
Bestandteilspezifizierer, die als Datumsbestandteil und in Intervallen verwendbar sind
| Spezifizierer | Beschreibung | Synonyme | Beispiel |
|---|---|---|---|
century |
Gregorianisches Jahrhundert | cent, centuries, c |
21 |
day |
Gregorianischer Tag | days, d, dayofmonth |
3 |
decade |
Gregorianisches Jahrzehnt | dec, decades, decs |
202 |
hour |
Stunden | hr, hours, hrs, h |
11 |
microseconds |
Subminütige Mikrosekunden | microsecond, us, usec, usecs, usecond, useconds |
44123456 |
millennium |
Gregorianisches Jahrtausend | mil, millenniums, millenia, mils, millenium |
3 |
milliseconds |
Subminütige Millisekunden | millisecond, ms, msec, msecs, msecond, mseconds |
44123 |
minute |
Minuten | min, minutes, mins, m |
59 |
month |
Gregorianischer Monat | mon, months, mons |
8 |
quarter |
Quartal des Jahres (1–4) | quarters |
3 |
second |
Sekunden | sec, seconds, secs, s |
44 |
year |
Gregorianisches Jahr | yr, y, years, yrs |
2021 |
Bestandteilspezifizierer, die nur als Datumsbestandteil verwendbar sind
| Spezifizierer | Beschreibung | Synonyme | Beispiel |
|---|---|---|---|
dayofweek |
Wochentag (Sonntag = 0, Samstag = 6) | weekday, dow |
2 |
dayofyear |
Tag des Jahres (1–365/366) | doy |
215 |
epoch |
Sekunden seit 1970-01-01 | 1760465850.6698709 |
|
era |
Gregorianische Ära (n. Chr./AD, v. Chr./BC) | 1 |
|
isodow |
ISO-Wochentag (Montag = 1, Sonntag = 7) | 2 |
|
isoyear |
ISO-Jahr (beginnt am Montag der Woche, die den 4. Januar enthält) | 2021 |
|
julian |
Julianische Tageszahl. | 2459430.4998162435 |
|
timezone_hour |
Stundenanteil der Zeitzonenverschiebung | 0 |
|
timezone_minute |
Minutenanteil der Zeitzonenverschiebung | 0 |
|
timezone |
Zeitzonenverschiebung in Sekunden | 0 |
|
week |
Wochennummer | weeks, w |
31 |
yearweek |
ISO-Jahr und Wochennummer im Format YYYYWW |
202131 |
Beachten Sie, dass die Zeitzonenbestandteile alle null sind, sofern nicht eine Zeitzonenerweiterung wie ICU
installiert wurde, um TIMESTAMP WITH TIME ZONE zu unterstützen.
Bestandteilfunktionen
Es gibt eigene Extraktionsfunktionen, um bestimmte Teilfelder zu holen:
| Name | Beschreibung |
|---|---|
century(date) |
Jahrhundert. |
day(date) |
Tag. |
dayofmonth(date) |
Tag (Synonym). |
dayofweek(date) |
Numerischer Wochentag (Sonntag = 0, Samstag = 6). |
dayofyear(date) |
Tag des Jahres (beginnt bei 1, d. h. 1. Januar = 1). |
decade(date) |
Jahrzehnt (Jahr / 10). |
epoch(date) |
Sekunden seit 1970-01-01. |
era(date) |
Kalenderära. |
hour(date) |
Stunden. |
isodow(date) |
Numerischer ISO-Wochentag (Montag = 1, Sonntag = 7). |
isoyear(date) |
ISO-Jahr (beginnt am Montag der Woche, die den 4. Januar enthält). |
julian(date) |
Julianische Tageszahl als DOUBLE. |
microsecond(date) |
Subminütige Mikrosekunden. |
millennium(date) |
Jahrtausend. |
millisecond(date) |
Subminütige Millisekunden. |
minute(date) |
Minuten. |
month(date) |
Monat. |
quarter(date) |
Quartal. |
second(date) |
Sekunden. |
timezone_hour(date) |
Stundenanteil der Zeitzonenverschiebung. |
timezone_minute(date) |
Minutenanteil der Zeitzonenverschiebung. |
timezone(date) |
Zeitzonenverschiebung in Sekunden. |
week(date) |
ISO-Woche. |
weekday(date) |
Numerisches Wochentagssynonym (Sonntag = 0, Samstag = 6). |
weekofyear(date) |
ISO-Woche (Synonym). |
year(date) |
Jahr. |
yearweek(date) |
BIGINT aus kombinierter ISO-Jahreszahl und 2-stelliger ISO-Wochennummer. |
century(date)
| Beschreibung | Jahrhundert. |
| Beispiel | century(DATE '1992-02-15') |
| Ergebnis | 20 |
day(date)
| Beschreibung | Tag. |
| Beispiel | day(DATE '1992-02-15') |
| Ergebnis | 15 |
dayofmonth(date)
| Beschreibung | Tag (Synonym). |
| Beispiel | dayofmonth(DATE '1992-02-15') |
| Ergebnis | 15 |
dayofweek(date)
| Beschreibung | Numerischer Wochentag (Sonntag = 0, Samstag = 6). |
| Beispiel | dayofweek(DATE '1992-02-15') |
| Ergebnis | 6 |
dayofyear(date)
| Beschreibung | Tag des Jahres (beginnt bei 1, d. h. 1. Januar = 1). |
| Beispiel | dayofyear(DATE '1992-02-15') |
| Ergebnis | 46 |
decade(date)
| Beschreibung | Jahrzehnt (Jahr / 10). |
| Beispiel | decade(DATE '1992-02-15') |
| Ergebnis | 199 |
epoch(date)
| Beschreibung | Sekunden seit 1970-01-01. |
| Beispiel | epoch(DATE '1992-02-15') |
| Ergebnis | 698112000.0 |
era(date)
| Beschreibung | Kalenderära. |
| Beispiel | era(DATE '0044-03-15 (BC)') |
| Ergebnis | 0 |
hour(date)
| Beschreibung | Stunden. |
| Beispiel | hour(timestamp '2021-08-03 11:59:44.123456') |
| Ergebnis | 11 |
isodow(date)
| Beschreibung | Numerischer ISO-Wochentag (Montag = 1, Sonntag = 7). |
| Beispiel | isodow(DATE '1992-02-15') |
| Ergebnis | 6 |
isoyear(date)
| Beschreibung | ISO-Jahr (beginnt am Montag der Woche, die den 4. Januar enthält). |
| Beispiel | isoyear(DATE '2022-01-01') |
| Ergebnis | 2021 |
julian(date)
| Beschreibung | Julianische Tageszahl als DOUBLE. |
| Beispiel | julian(DATE '1992-09-20') |
| Ergebnis | 2448886.0 |
microsecond(date)
| Beschreibung | Subminütige Mikrosekunden. |
| Beispiel | microsecond(timestamp '2021-08-03 11:59:44.123456') |
| Ergebnis | 44123456 |
millennium(date)
| Beschreibung | Jahrtausend. |
| Beispiel | millennium(DATE '1992-02-15') |
| Ergebnis | 2 |
millisecond(date)
| Beschreibung | Subminütige Millisekunden. |
| Beispiel | millisecond(timestamp '2021-08-03 11:59:44.123456') |
| Ergebnis | 44123 |
minute(date)
| Beschreibung | Minuten. |
| Beispiel | minute(timestamp '2021-08-03 11:59:44.123456') |
| Ergebnis | 59 |
month(date)
| Beschreibung | Monat. |
| Beispiel | month(DATE '1992-02-15') |
| Ergebnis | 2 |
quarter(date)
| Beschreibung | Quartal. |
| Beispiel | quarter(DATE '1992-02-15') |
| Ergebnis | 1 |
second(date)
| Beschreibung | Sekunden. |
| Beispiel | second(timestamp '2021-08-03 11:59:44.123456') |
| Ergebnis | 44 |
timezone_hour(date)
| Beschreibung | Stundenanteil der Zeitzonenverschiebung. |
| Beispiel | timezone_hour(DATE '1992-02-15') |
| Ergebnis | 0 |
timezone_minute(date)
| Beschreibung | Minutenanteil der Zeitzonenverschiebung. |
| Beispiel | timezone_minute(DATE '1992-02-15') |
| Ergebnis | 0 |
timezone(date)
| Beschreibung | Zeitzonenverschiebung in Minuten. |
| Beispiel | timezone(DATE '1992-02-15') |
| Ergebnis | 0 |
week(date)
| Beschreibung | ISO-Woche. |
| Beispiel | week(DATE '1992-02-15') |
| Ergebnis | 7 |
weekday(date)
| Beschreibung | Numerisches Wochentagssynonym (Sonntag = 0, Samstag = 6). |
| Beispiel | weekday(DATE '1992-02-15') |
| Ergebnis | 6 |
weekofyear(date)
| Beschreibung | ISO-Woche (Synonym). |
| Beispiel | weekofyear(DATE '1992-02-15') |
| Ergebnis | 7 |
year(date)
| Beschreibung | Jahr. |
| Beispiel | year(DATE '1992-02-15') |
| Ergebnis | 1992 |
yearweek(date)
| Beschreibung | BIGINT aus kombinierter ISO-Jahreszahl und 2-stelliger ISO-Wochennummer. |
| Beispiel | yearweek(DATE '1992-02-15') |
| Ergebnis | 199207 |