MySQL secara default tidak memiliki format hari dan tanggal bahasa Indonesia. Apabila menginginkan format seperti : (Rabu, 7 Juni 2017), maka dapat menggunakan Query di bawah ini :
Query SQL :
SELECT CONCAT( CASE DAYOFWEEK(NOW()) WHEN 1 THEN 'Minggu' WHEN 2 THEN 'Senin' WHEN 3 THEN 'Selasa' WHEN 4 THEN 'Rabu' WHEN 5 THEN 'Kamis' WHEN 6 THEN 'Jumat' WHEN 7 THEN 'Sabtu' END,', ', DAY(NOW()),' ', CASE MONTH(NOW()) WHEN 1 THEN 'Januari' WHEN 2 THEN 'Februari' WHEN 3 THEN 'Maret' WHEN 4 THEN 'April' WHEN 5 THEN 'Mei' WHEN 6 THEN 'Juni' WHEN 7 THEN 'Juli' WHEN 8 THEN 'Agustus' WHEN 9 THEN 'September' WHEN 10 THEN 'Oktober' WHEN 11 THEN 'November' WHEN 12 THEN 'Desember' END,' ', YEAR(NOW()) ) AS tanggal;
Penjelasan Sistem Kerja Query SQL :
- Memanggil fungsi DAYOFWEEK untuk mengetahui hari sesuai dengan tanggal yang ditentukan, seperti contoh di atas menggunakan NOW() yang berarti sekarang(hari ini). Fungsi DAYOFWEEK akan menghasilkan angka antara 1-7 yang berarti Minggu-Sabtu, kemudian dikonversi ke dalam format Indonesia melalui perintah CASE
- Fungsi DAY(tanggal) untuk mengetahui tanggal(1-31)
- Fungsi MONTH(tanggal) untuk mengetahui bulan dalam bentuk angka (1-12) kemudian dikonversi ke dalam format Indonesia (Januari-Desember)
- Memanggil fungsi YEAR(tanggal) untuk mengetahui tahun
- Penggabungan poin 1-4
Penjelasan parameter :
- NOW() : tanggal yang digunakan, dirubah sesuai kebutuhan
Jika ingin menjadikannya sebagai Function :
CREATE FUNCTION sf_formatTanggal(tanggal DATE) RETURNS VARCHAR(255) DETERMINISTIC BEGIN DECLARE varhasil varchar(255); SELECT CONCAT( CASE DAYOFWEEK(tanggal) WHEN 1 THEN 'Minggu' WHEN 2 THEN 'Senin' WHEN 3 THEN 'Selasa' WHEN 4 THEN 'Rabu' WHEN 5 THEN 'Kamis' WHEN 6 THEN 'Jumat' WHEN 7 THEN 'Sabtu' END,', ', DAY(tanggal),' ', CASE MONTH(tanggal) WHEN 1 THEN 'Januari' WHEN 2 THEN 'Februari' WHEN 3 THEN 'Maret' WHEN 4 THEN 'April' WHEN 5 THEN 'Mei' WHEN 6 THEN 'Juni' WHEN 7 THEN 'Juli' WHEN 8 THEN 'Agustus' WHEN 9 THEN 'September' WHEN 10 THEN 'Oktober' WHEN 11 THEN 'November' WHEN 12 THEN 'Desember' END,' ', YEAR(tanggal) ) INTO varhasil; RETURN varhasil; END
Penjelasan parameter :
- tanggal : tanggal yang ingin dijadikan format Indonesia
- varhasil : penampung hasil
Cara pemanggilan Function di atas :
SELECT sf_formatTanggal(NOW()); /* atau */ SELECT sf_formatTanggal(STR_TO_DATE('2016-12-31','%Y-%m-%d'));
Bayu Kandukeswara