Date & Time

DATE_TRUNC

SnowflakeSnowflake

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

Tipe hasil: DATE/TIMESTAMP (sama dengan input)Diperbarui: 6 Jan 2026

Syntax

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
1SELECT 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
1SELECT
2 DATE_TRUNC('MONTH', order_date) as month,
3 SUM(amount) as total_sales,
4 COUNT(*) as order_count
5FROM orders
6GROUP BY DATE_TRUNC('MONTH', order_date)
7ORDER BY month;

Menghitung total penjualan dan jumlah order per bulan.

Hasil
MONTHTOTAL_SALESORDER_COUNT
2024-01-01 00:00:00.0001250000450
2024-02-01 00:00:00.0001480000520
2024-03-01 00:00:00.0001320000480

Analisis per Jam

SQL
1SELECT
2 DATE_TRUNC('HOUR', event_timestamp) as hour,
3 COUNT(*) as event_count
4FROM events
5WHERE event_timestamp >= DATEADD('DAY', -1, CURRENT_TIMESTAMP())
6GROUP BY 1
7ORDER BY 1;

Menghitung jumlah event per jam dalam 24 jam terakhir.