Zum Inhalt springen

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 julian und epoch, die DOUBLEs liefern, werden alle Bestandteile als Ganzzahlen extrahiert. Da es in DuckDB keine unendlichen Ganzzahlwerte gibt, werden für unendliche Zeitstempel NULLs 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 |