EXTRACT di SQL

Mengambil bagian tertentu dari tanggal: tahun, bulan, hari, jam, dan seterusnya.

Penjelasan sederhana

EXTRACT mengambil satu bagian dari tanggal: tahunnya (YEAR), bulannya (MONTH), harinya (DAY), atau jamnya (HOUR). Mirip rumus YEAR, MONTH, dan DAY di Excel.

Fungsi ini hampir selalu muncul di laporan berkala, karena kamu bisa mengelompokkan transaksi per bulan atau per tahun.

Sintaks

EXTRACT(bagian FROM tanggal)
BagianKeterangan
bagianYEAR, MONTH, DAY, HOUR, MINUTE, QUARTER, dan lain-lain.
tanggalKolom bertipe DATE atau TIMESTAMP.

Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.

Contoh EXTRACT

Data contoh: penjualan

Tabel penjualan

idtanggalkaryawan_idprodukkategoriqtyharga
1 2026-01-05 4 Laptop Elektronik 2 8500000
2 2026-01-12 6 Printer Elektronik 1 2300000
3 2026-01-20 4 Kursi Kantor Furnitur 5 1200000
4 2026-02-03 6 Laptop Elektronik 1 8500000
5 2026-02-14 4 Meja Kerja Furnitur 3 1750000
6 2026-02-25 5 Kertas A4 ATK 20 55000
7 2026-03-02 6 Kursi Kantor Furnitur 4 1200000
8 2026-03-10 4 Printer Elektronik 2 2300000
9 2026-03-18 5 Kertas A4 ATK 30 55000
10 2026-03-27 6 Monitor Elektronik 3 1900000
query.sql
SELECT EXTRACT(MONTH FROM tanggal) AS bulan,
       SUM(qty * harga) AS omzet
FROM penjualan
GROUP BY EXTRACT(MONTH FROM tanggal)
ORDER BY bulan;
>_ Jalankan & ubah query ini di browser

Hasil 3 baris

bulanomzet
1 25300000
2 14850000
3 16750000

Omzet per bulan. Pola ini dipakai di hampir semua laporan bulanan.

Cara kerjanya, langkah demi langkah

  1. FROM penjualan: 10 transaksi diambil.
  2. EXTRACT(MONTH FROM tanggal): dari setiap tanggal diambil angka bulannya. "2026-01-05" menjadi 1.
  3. GROUP BY bulan: transaksi dikelompokkan menjadi 3, yaitu bulan 1, 2, dan 3.
  4. SUM(qty * harga) per bulan: Januari 25.300.000, Februari 14.850.000, Maret 16.750.000.

Dipakai untuk apa di kantor?

  • Laporan omzet per bulan atau per tahun.
  • Melihat jam ramai transaksi dengan EXTRACT(HOUR FROM waktu).

Kesalahan yang sering terjadi

  • Mengelompokkan hanya per bulan untuk data lebih dari setahun. Januari 2025 dan Januari 2026 tergabung jadi satu. Kelompokkan per tahun dan bulan.
  • Lupa bahwa nama fungsinya berbeda di tiap database. MySQL juga punya MONTH(), SQL Server memakai DATEPART().
Progres bab Fungsi Teks, Angka & Tanggal 0/9 dipelajari
Lanjut: CASE WHEN

Belajar SQL bareng mentor

Hafal sintaks itu mudah. Menjawab pertanyaan bisnis, itu skill.

Private Class Python & SQL untuk Data: dari query dasar sampai JOIN dan studi kasus kerja, dengan kurikulum dan jadwal yang menyesuaikan kamu.

Lihat Private Class