Date & Time
Snowflake
DATE_TRUNC
Memotong (truncate) timestamp ke presisi tertentu. Sangat berguna untuk grouping data berdasarkan periode waktu.
Tipe hasil:
DATE/TIMESTAMP (sama dengan input)Diperbarui: 6 Jan 2026Syntax
SQL
DATE_TRUNC(date_or_time_part, date_or_time_expr)Parameter
date_or_time_partVARCHARwajib
Presisi truncate: YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND
date_or_time_exprDATE/TIMESTAMPwajib
Nilai tanggal atau timestamp yang akan di-truncate
Contoh Penggunaan
Truncate ke Bulan
SQL
1 SELECT DATE_TRUNC('MONTH', '2024-03-15 14:30:00'::TIMESTAMP) as result;
Memotong timestamp ke awal bulan.
Hasil
2024-03-01 00:00:00.000
Grouping Sales per Bulan
SQL
1 SELECT 2 DATE_TRUNC('MONTH', order_date) as month, 3 SUM(amount) as total_sales, 4 COUNT(*) as order_count 5 FROM orders 6 GROUP BY DATE_TRUNC('MONTH', order_date) 7 ORDER BY month;
Menghitung total penjualan dan jumlah order per bulan.
Hasil
| MONTH | TOTAL_SALES | ORDER_COUNT |
|---|---|---|
| 2024-01-01 00:00:00.000 | 1250000 | 450 |
| 2024-02-01 00:00:00.000 | 1480000 | 520 |
| 2024-03-01 00:00:00.000 | 1320000 | 480 |
Analisis per Jam
SQL
1 SELECT 2 DATE_TRUNC('HOUR', event_timestamp) as hour, 3 COUNT(*) as event_count 4 FROM events 5 WHERE event_timestamp >= DATEADD('DAY', -1, CURRENT_TIMESTAMP()) 6 GROUP BY 1 7 ORDER BY 1;
Menghitung jumlah event per jam dalam 24 jam terakhir.