Date & Time
BigQuery
DATE_DIFF
Menghitung selisih antara dua DATE dalam unit yang ditentukan. Mengembalikan nilai integer.
Tipe hasil:
INT64Diperbarui: 7 Jan 2026Syntax
SQL
DATE_DIFF(date_expression_a, date_expression_b, date_part)Parameter
date_expression_aDATEwajib
DATE akhir (minuend)
date_expression_bDATEwajib
DATE awal (subtrahend)
date_partDATE_PARTwajib
Unit hasil: DAY, WEEK, MONTH, QUARTER, YEAR
Contoh Penggunaan
Calculate Age
SQL
1 SELECT 2 name, 3 birth_date, 4 DATE_DIFF(CURRENT_DATE(), birth_date, YEAR) as age_years, 5 DATE_DIFF(CURRENT_DATE(), birth_date, DAY) as age_days 6 FROM `project.dataset.users`;
Hitung umur dalam tahun dan hari.
Hasil
| name | birth_date | age_years | age_days |
|---|---|---|---|
| John | 1990-05-15 | 33 | 12298 |
Days Between Orders
SQL
1 SELECT 2 order_id, 3 order_date, 4 LAG(order_date) OVER (PARTITION BY customer_id ORDER BY order_date) as prev_order, 5 DATE_DIFF(order_date, LAG(order_date) OVER (PARTITION BY customer_id ORDER BY order_date), DAY) as days_since_last 6 FROM `project.dataset.orders`;
Hitung hari antara order customer.
Months in Service
SQL
1 SELECT 2 employee_id, 3 hire_date, 4 DATE_DIFF(CURRENT_DATE(), hire_date, MONTH) as months_employed 5 FROM `project.dataset.employees` 6 WHERE status = 'active';
Hitung masa kerja dalam bulan.