Date & Time

DATE_TRUNC

DuckDBDuckDB

Memotong (truncate) date/timestamp ke presisi tertentu. Sangat berguna untuk grouping data berdasarkan periode waktu.

Tipe hasil: TIMESTAMPDiperbarui: 6 Jan 2026

Syntax

SQL
DATE_TRUNC(part, date) | DATE_TRUNC(part, timestamp)

Parameter

partVARCHARwajib

Level presisi: 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second'

date/timestampDATE/TIMESTAMPwajib

Nilai tanggal atau timestamp yang akan di-truncate

Contoh Penggunaan

Truncate ke Bulan

SQL
1SELECT DATE_TRUNC('month', TIMESTAMP '2024-03-15 14:30:00');

Memotong ke awal bulan.

Hasil
2024-03-01 00:00:00

Aggregasi per Bulan

SQL
1SELECT
2 DATE_TRUNC('month', order_date) as month,
3 COUNT(*) as total_orders,
4 SUM(amount) as total_revenue
5FROM orders
6GROUP BY DATE_TRUNC('month', order_date)
7ORDER BY month;

Menghitung total order dan revenue per bulan.

Hasil
monthtotal_orderstotal_revenue
2024-01-011250125000000
2024-02-011380138000000
2024-03-0198098000000

Analisis per Minggu

SQL
1SELECT
2 DATE_TRUNC('week', created_at) as week_start,
3 COUNT(DISTINCT user_id) as weekly_active_users
4FROM user_sessions
5GROUP BY 1
6ORDER BY 1 DESC
7LIMIT 10;

Menghitung Weekly Active Users (WAU).

Truncate ke Jam

SQL
1SELECT
2 DATE_TRUNC('hour', event_time) as hour,
3 COUNT(*) as events_per_hour
4FROM events
5WHERE event_date = CURRENT_DATE
6GROUP BY 1
7ORDER BY 1;

Menghitung distribusi event per jam.