Dates & time Scalar

time_bucket()

Truncate TIMESTAMPTZ by the specified interval bucket_width. Buckets are aligned relative to origin TIMESTAMPTZ. The origin defaults to 2000-01-03 00:00:00+00 for buckets that do not include a month or year interval, and to 2000-01-01 00:00:00+00 for month and year buckets

Arguments & returns

10 overloads

time_bucket(bucket_width, timestamp)

Scalar
Overload link bucket_widthtimestamp Returns
#01 INTERVALDATE DATE
#02 INTERVALTIMESTAMP TIMESTAMP
#03 INTERVALTIMESTAMP WITH TIME ZONE TIMESTAMP WITH TIME ZONE

time_bucket(bucket_width, timestamp, origin)

Scalar
Overload link bucket_widthtimestamporigin Returns
#04 INTERVALDATEDATE DATE
#05 INTERVALDATEINTERVAL DATE
#06 INTERVALTIMESTAMP WITH TIME ZONEINTERVAL TIMESTAMP WITH TIME ZONE
#07 INTERVALTIMESTAMP WITH TIME ZONETIMESTAMP WITH TIME ZONE TIMESTAMP WITH TIME ZONE
#08 INTERVALTIMESTAMP WITH TIME ZONEVARCHAR TIMESTAMP WITH TIME ZONE
#09 INTERVALTIMESTAMPINTERVAL TIMESTAMP
#10 INTERVALTIMESTAMPTIMESTAMP TIMESTAMP

Example

time_bucket example
SQL
Haybarn WASM 1.5.5-rc3 · In your browser

Engine example · Run to view results.

In other engines

PostgreSQL

SELECT DATE_BIN('30 days', timestamp_col, (SELECT MIN(TIMESTAMP) from table)) FROM table
In Haybarn
SELECT TIME_BUCKET('30 days', timestamp_col, (SELECT MIN(TIMESTAMP) FROM "table")) FROM "table"

SQLGlot example ↗

Snowflaketime_slice()

SELECT TIME_SLICE(DATE '2024-03-15', 1, 'DAY')
In Haybarn
SELECT TIME_BUCKET(INTERVAL 1 DAY, CAST('2024-03-15' AS DATE))

SQLGlot example ↗