Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
fungsi
Berlaku untuk:
Databricks SQL
Databricks Runtime 19 ke atas
Mengembalikan awal bucket waktu lebar tetap tempat timestamp masuk, diselaraskan dengan asal.
Sintaks
time_bucket(bucketSize, ts [, origin])
Argumen
-
bucketSize: EkspresiINTERVALkonstan yang menentukan ukuran setiap bucket. Mendukung interval siang hari dan tahun-bulan. Harus positif dan tidak nol. -
ts: Ekspresi ATIMESTAMPorTIMESTAMP_NTZke bucket. -
origin: Ekspresi opsionalTIMESTAMPatauTIMESTAMP_NTZkonstan yang mendefinisikan jangkar penyelarasan grid bucket. Secara default menjadi1970-01-01 00:00:00. Harus tipe yang sama dengants.
Returns
Nilai dengan tipe yang sama dengan ts (TIMESTAMP atau TIMESTAMP_NTZ). Nilai adalah awal dari bucket [start, start + bucketSize) setengah terbuka yang berisi ts. Awal selalu kurang dari atau sama dengan ts, dan batas bucket berikutnya (start + bucketSize) secara ketat lebih besar dari ts.
Catatan
-
time_bucketmembagi sumbu waktu menjadi interval berurutan yang tidak tumpang tindih dengan ukuranbucketSize, yang berakar padaorigin. Ia mengembalikan awal interval yang mengandungts. -
origintidak perlu mendahuluits. Itu hanya mendefinisikan penyelarasan grid bucket. Kisi ini membentang tak hingga di kedua arah dariorigin. - Untuk
TIMESTAMP_NTZ,time_bucketbucket di UTC. UntukTIMESTAMP, bucket interval tahun-bulan dan komponen kalender-hari dari bucket interval siang-waktu selaras dengan zona waktu sesi. - Jika ada argumen yang ,
NULLhasilnya adalahNULL. - Gunakan
date_truncuntuk batas yang selaras dengan kalender seperti pengelompokan berdasarkan bulan kalender. Gunakantime_bucketketika lebar atau penyelarasan bucket ditentukan oleh pengguna.
Kondisi kesalahan umum
- DATATYPE_MISMATCH. NON_FOLDABLE_INPUT
- DATATYPE_MISMATCH. UNEXPECTED_INPUT_TYPE
- DATATYPE_MISMATCH. VALUE_OUT_OF_RANGE
Contoh
-- 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).