Masalah:
Anda ingin mendapatkan tahun dan bulan dari tanggal tertentu dalam database MySQL.
Contoh:
Basis data kami memiliki tabel bernama dates
dengan data pada kolom id
dan date
.
id | tanggal |
---|---|
1 | 21-04-2008 |
2 | 1987-12-14 |
Mari kita ekstrak year
dan month
dari tanggal.
Solusi 1:
SELECT EXTRACT(YEAR FROM date) AS year, EXTRACT(MONTH FROM date) AS month FROM dates;
Hasilnya adalah:
tahun | bulan |
---|---|
2008 | 4 |
1987 | 12 |
Diskusi:
Untuk mendapatkan kolom tahun dan bulan, gunakan EXTRACT(part FROM date)
fungsi. Dalam solusi ini, argumen bagian diganti dengan YEAR
dan MONTH
untuk mendapatkan year
dan month
terpisah, masing-masing dalam kolomnya sendiri.
Anda dapat mempelajari lebih lanjut tentang EXTRACT()
dalam dokumentasi resmi MySQL.
Solusi 2:
SELECT EXTRACT(YEAR_MONTH FROM date) AS year_and_month FROM dates;
Hasilnya adalah:
tahun_dan_bulan |
---|
200804 |
198712 |
Diskusi:
Solusi ini bekerja persis seperti yang sebelumnya, tetapi YEAR_MONTH
digunakan untuk menyatukan tahun dan bulan dalam satu kolom alih-alih membuatnya secara terpisah. Perhatikan bahwa nilai tahun dan bulan tidak terpisah satu sama lain.
Solusi 3:
SELECT YEAR(date) AS year, MONTH(date) AS month FROM dates;
Hasilnya adalah:
tahun | bulan |
---|---|
2008 | 4 |
1987 | 12 |
Diskusi:
Kali ini, YEAR()
dan MONTH()
fungsi yang digunakan untuk membuat dua kolom. YEAR()
mengembalikan tahun dan MONTH()
mengembalikan bulan sebagai angka.
Solusi 4:
SELECT YEAR(date) AS year, MONTHNAME(date) AS month FROM dates;
Hasilnya adalah:
tahun | bulan |
---|---|
2008 | April |
1987 | Desember |
Diskusi:
Untuk mendapatkan nama bulan, gunakan MONTHNAME()
fungsi. Hasilnya menampilkan nama bulan, bukan nomor bulan.
Solusi 5:
SELECT DATE_FORMAT(date, '%Y-%m') AS year_and_month FROM dates;
Hasilnya adalah:
tahun_dan_bulan |
---|
2008-04 |
1987-12 |
Diskusi:
Gunakan DATE_FORMAT()
berfungsi untuk menampilkan date
nilai dalam format tertentu. Dibutuhkan date
sebagai argumen pertama dan string yang menjelaskan format tanggal yang diinginkan sebagai argumen kedua. Dalam kasus kami, string '%Y-%m
', %Y
mengembalikan tahun, ‘ -
’ digunakan sebagai pemisah, dan %m
mengembalikan bulan secara numerik (dapat diganti dengan %M
untuk mendapatkan nama bulan).
Anda dapat mempelajari lebih lanjut tentang DATE_FORMAT()
dalam dokumentasi resmi MySQL.