Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
funktion
Gäller för:
Databricks
Databricks Runtime 19 och uppåt
Returnerar början på den tidsbucket med fast bredd som en tidsstämpel tillhör, justerad mot ett ursprung.
Syntax
time_bucket(bucketSize, ts [, origin])
Arguments
-
bucketSize: EttINTERVALkonstant uttryck som specificerar storleken på varje hink. Stöder dagtids- och års-månadsintervaller. Måste vara positiv och icke-noll. -
ts: EttTIMESTAMPellerTIMESTAMP_NTZuttryck till hink. -
origin: Ett valfrittTIMESTAMPellerTIMESTAMP_NTZkonstant uttryck som definierar justeringsankaret för hinknätet. Standardinställningen är1970-01-01 00:00:00. Måste vara samma typ somts.
Returns
Ett värde av samma typ som ts (TIMESTAMP eller TIMESTAMP_NTZ). Värdet är början på den halvöppna hinken [start, start + bucketSize) som innehåller ts. Startpunkten är alltid mindre än eller lika med ts, och nästa hinkgräns (start + bucketSize) är strikt större än ts.
Anteckningar
-
time_bucketdelar tidsaxeln i på varandra följande, icke-överlappande intervall av storlekbucketSize, förankrade vidorigin. Den returnerar början av intervallet som innehållerts. -
originbehöver inte föregåts. Den definierar endast justeringen av hinknätet. Nätet sträcker sig oändligt i båda riktningarna frånorigin. - För
TIMESTAMP_NTZ,time_buckethinkar i UTC. FörTIMESTAMP, år-månad-intervallhinkar och kalenderdagskomponenterna i dagtidsintervall-hinkar justeras mot sessionens tidszon. - Om något argument är
NULL, blir resultatetNULL. - Använd
date_truncför kalenderanpassade gränser, såsom gruppering efter kalendermånad. Användtime_bucketnär hinkbredden eller justeringen är användardefinierad.
Vanliga felvillkor
- 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).