Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
Databricks SQL
Databricks Runtime 19 en hoger
Geeft het begin terug van de tijdsbak met vaste breedte waarin een tijdstempel valt, uitgelijnd met een oorsprong.
Syntax
time_bucket(bucketSize, ts [, origin])
Arguments
-
bucketSize: EenINTERVALconstante expressie die de grootte van elke emmer specificeert. Ondersteunt dag- en jaar-maand-intervallen. Moet positief en niet-nul zijn. -
ts: EenTIMESTAMPof uitdrukkingTIMESTAMP_NTZnaar emmer. -
origin: Een optioneleTIMESTAMPofTIMESTAMP_NTZconstante uitdrukking die het uitlijnanker van het bucket grid definieert. Wordt standaard ingesteld op1970-01-01 00:00:00. Moet hetzelfde type zijn alsts.
Returns
Een waarde van hetzelfde type als ts (TIMESTAMP of TIMESTAMP_NTZ). De waarde is het begin van de halfopen emmer [start, start + bucketSize) die bevat ts. Het begin is altijd kleiner dan of gelijk aan ts, en de volgende bucketgrens (start + bucketSize) is strikt groter dan ts.
Notes
-
time_bucketde tijdsas verdeelt in opeenvolgende, niet-overlappende intervallen van groottebucketSize, verankerd inorigin. Het geeft het begin van het interval dat bevattsterug. -
originhoeft niet vooraftste gaan . Het definieert alleen de uitlijning van het emmerrooster. Het rooster strekt zich oneindig uit in beide richtingen vanaforigin. - Voor
TIMESTAMP_NTZ,time_bucketemmers in UTC. VoorTIMESTAMP, jaar-maand intervalemmers en de kalenderdagcomponenten van dagintervalemmers zijn uitgelijnd met de sessietijdzone. - Als een argument is
NULL, is het resultaatNULL. - Gebruik
date_trunchet voor kalender-uitgelijnde grenzen, zoals groeperen per kalendermaand. Gebruiktime_bucketwanneer de bucketbreedte of uitlijning door de gebruiker is gedefinieerd.
Algemene foutvoorwaarden
- 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).