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.