Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 19 und höher
Gibt den Anfang des Zeitbuckets mit fester Breite zurück, in den ein Zeitstempel fällt, ausgerichtet auf einen Ursprung.
Syntax
time_bucket(bucketSize, ts [, origin])
Argumente
-
bucketSize: Ein konstanter Ausdruck, der die Größe jedes EimersINTERVALangibt. Unterstützt Tages- und Jahres-Monatsintervalle. Muss positiv und nicht null sein. -
ts: A oder AusdruckTIMESTAMP_NTZzu EimerTIMESTAMP. -
origin: Ein optionalerTIMESTAMPoderTIMESTAMP_NTZkonstanter Ausdruck, der den Ausrichtungsanker des Eimerrasters definiert. Wird standardmäßig auf1970-01-01 00:00:00festgelegt. Muss vom gleichen Typtswie sein.
Rückkehr
Ein Wert desselben Typs wie ts (TIMESTAMP oder TIMESTAMP_NTZ). Der Wert ist der Anfang des halboffenen Eimers [start, start + bucketSize) , der enthält ts. Der Anfang ist immer kleiner als oder gleich , tsund der nächste Eimerrand (start + bucketSize) ist streng größer als ts.
Notizen
-
time_bucketteilt die Zeitachse in aufeinanderfolgende, nicht überlappende Intervalle der GrößebucketSize, verankert beiorigin. Sie gibt den Anfang des Intervalls zurück, das enthältts. -
originmuss nicht vortsgestellt werden. Es definiert nur die Ausrichtung des Eimergitters. Das Gitter erstreckt sich unendlich in beide Richtungen von .origin - Für
TIMESTAMP_NTZ,time_bucketBuckets in UTC. FürTIMESTAMP, Jahr-Monat-Intervall-Buckets und die Kalendertage-Komponenten der Tagesintervall-Buckets entsprechen der Sitzungszeitzone. - Wenn ein Argument ist
NULL, ist das ErgebnisNULL. - Verwenden
date_truncSie für kalenderausgerichtete Grenzen, wie z. B. die Gruppierung nach Kalendermonaten. Verwenden Sie,time_bucketwenn die Bucket-Breite oder -Ausrichtung benutzerdefiniert ist.
Häufige Fehlerbedingungen
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- DATATYPE_MISMATCH. VALUE_OUT_OF_RANGE
Beispiele
-- 15-minute buckets (default origin at epoch)
> SELECT time_bucket(INTERVAL '15' MINUTE, TIMESTAMP '2024-01-01 11:27:00');
2024-01-01 11:15:00
-- 1-hour buckets
> SELECT time_bucket(INTERVAL '1' HOUR, TIMESTAMP '2024-01-01 11:27:00');
2024-01-01 11:00:00
-- Custom origin shifts bucket alignment to :05 past the hour
> SELECT time_bucket(INTERVAL '1' HOUR, TIMESTAMP '2024-01-01 11:27:00', TIMESTAMP '1970-01-01 00:05:00');
2024-01-01 11:05:00
-- TIMESTAMP_NTZ variant
> SELECT time_bucket(INTERVAL '15' MINUTE, TIMESTAMP_NTZ '2024-01-01 11:27:00');
2024-01-01 11:15:00
-- ts exactly on a bucket boundary returns itself
> SELECT time_bucket(INTERVAL '15' MINUTE, TIMESTAMP '2024-01-01 11:15:00');
2024-01-01 11:15:00
-- Origin after ts: grid extends backward
> SELECT time_bucket(INTERVAL '1' HOUR, TIMESTAMP '2024-01-01 11:27:00', TIMESTAMP '2025-01-01 00:30:00');
2024-01-01 10:30:00
-- Monthly buckets (default epoch origin: 1st of month)
> SELECT time_bucket(INTERVAL '1' MONTH, TIMESTAMP '2024-03-15 11:27:00');
2024-03-01 00:00:00
-- Quarterly buckets
> SELECT time_bucket(INTERVAL '3' MONTH, TIMESTAMP '2024-05-15 10:00:00');
2024-04-01 00:00:00
-- Monthly buckets with origin on the 15th
> SELECT time_bucket(INTERVAL '1' MONTH, TIMESTAMP '2024-03-20 09:00:00', TIMESTAMP '1970-01-15 00:00:00');
2024-03-15 00:00:00
-- Origin on 31st: day clamping in short months
> SELECT time_bucket(INTERVAL '1' MONTH, TIMESTAMP '2024-03-01 12:00:00', TIMESTAMP '1970-01-31 00:00:00');
2024-02-29 00:00:00
-- Zero bucket width is rejected
> SELECT time_bucket(INTERVAL '0' SECOND, TIMESTAMP '2024-01-01 11:00:00');
[DATATYPE_MISMATCH.VALUE_OUT_OF_RANGE] The bucketSize must be between (0, inf) (current value = INTERVAL '00' SECOND).