Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do:
, Databricks SQL
, Databricks Runtime 19 i wyższe
Zwraca początek kubełka czasowego o stałej szerokości, do którego znajduje się znacznik czasu, wyrównany do punktu początkowego.
Syntax
time_bucket(bucketSize, ts [, origin])
Arguments
-
bucketSize: WyrażenieINTERVALstałe określające rozmiar każdego wiadra. Obsługuje interwały dzienne oraz roczno-miesięczne. Musi być dodatnia i niezerowa. -
ts: ATIMESTAMPlubTIMESTAMP_NTZwyrażenie do wiadra. -
origin: OpcjonalneTIMESTAMPlubTIMESTAMP_NTZstałe wyrażenie definiujące kotwicę wyrównania siatki wiader. Wartość domyślna to1970-01-01 00:00:00. Musi być tego samego typu cots.
Zwroty
Wartość tego samego typu co ts (TIMESTAMP lub TIMESTAMP_NTZ). Wartość to początek półotwartego kubełka [start, start + bucketSize) , który zawiera ts. Początek jest zawsze mniejszy lub równy , tsa następna granica kubełka (start + bucketSize) jest ściśle większa niż ts.
Notatki
-
time_bucketdzieli oś czasu na kolejne, nienakładające się przedziały o rozmiarzebucketSize, zakotwiczone w .originZwraca początek przedziału, który zawierats. -
originnie musi poprzedzaćts. Definiuje jedynie wyrównanie siatki wiader. Siatka rozciąga się nieskończenie w obu kierunkach odorigin. - Dla
TIMESTAMP_NTZ,time_bucketbuckets w UTC. DlaTIMESTAMP, kubełki interwałowe roczno-miesięczne oraz składniki dni kalendarzowe w przedziałach dziennych są wyrównane do strefy czasowej sesji. - Jeśli dowolny argument jest ,
NULLwynik toNULL. - Zastosowanie
date_truncdo granic wyrównanych z kalendarzem, takich jak grupowanie według miesięcy kalendarzowych. Używaj,time_bucketgdy szerokość lub wyrównanie kubełka jest definiowane przez użytkownika.
Typowe warunki błędów
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- DATATYPE_MISMATCH. VALUE_OUT_OF_RANGE
Examples
-- 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).