Mengubah format tanggal, hari dan waktu Indonesia di MySQL

Source: Pexels
{tocify} $title={Daftar Isi}

Secara default semua data yang tersimpan di MySQL menggunakan format en-US atau Inggris-Amerika sehingga data yang tersimpan seperti penanggalan dan waktu menggunakan format amerika menjadi YYYY-MM-DD atau TAHUN-BULAN-HARI saat ditampilkan, seperti contoh berikut:

mysql> desc mahasiswa;
+-----------+---------------+------+-----+---------+----------------+
| Field     | Type          | Null | Key | Default | Extra          |
+-----------+---------------+------+-----+---------+----------------+
| id_mhs    | int           | NO   | PRI | NULL    | auto_increment |
| nama      | varchar(45)   | YES  |     | NULL    |                |
| npm       | char(8)       | YES  | UNI | NULL    |                |
| j_kelamin | enum('L','P') | YES  |     | NULL    |                |
| t_lahir   | date          | YES  |     | NULL    |                |
| alamat    | varchar(50)   | YES  |     | NULL    |                |
| kota      | varchar(45)   | YES  |     | NULL    |                |
| telepon   | varchar(12)   | YES  |     | NULL    |                |
| email     | varchar(50)   | YES  |     | NULL    |                |
+-----------+---------------+------+-----+---------+----------------+
9 rows in set (0.06 sec)

mysql> select t_lahir from mahasiswa limit 5;
+------------+
| t_lahir    |
+------------+
| 1996-09-03 |
| 1996-06-03 |
| 1998-08-03 |
| 1995-02-23 |
| 1995-03-13 |
+------------+
5 rows in set (0.00 sec)

MySQL tentunya telah menyediakan fungsi yang dapat digunakan untuk memanipulasi maupun merubah format data, salah satunya adalah dengan menggunakan Date_Format() dan String Format untuk merubah format tanggal selama data tersebut menggunakan tipe date date untuk menyimpan penanggalan.

Tanggal:

Date_Format pada MySQL digunakan untuk merubah format tanggal dari default menjadi sesuai dengan yang kita inginkan selama data yang tersimpan menggunakan tipe data date. Adapun bentuk umum / syntax dasar dan contohnya adalah sebagai berikut:

Format:

select date_format(nama_kolom, "Format String") [as alias_kolom] from nama_tabel;

Contoh:

mysql> select date_format(t_lahir, "%d %M, %Y") as "Tanggal Lahir" from mahasiswa limit 5;
+--------------------+
| Tanggal Lahir      |
+--------------------+
| 03 September, 1996 |
| 03 June, 1996      |
| 03 August, 1998    |
| 23 February, 1995  |
| 13 March, 1995     |
+--------------------+
5 rows in set (0.00 sec)

Adapun daftar Format String yang dapat digunakan untuk memformat penanggalan adalah sebagai berikut:

Format Deskripsi
%b Singkatan nama bulan (Jan..Dec)
%c Bulan, numerik(0..12)
%D Hari dalam sebulan, Inggris Suffix (0th, 1st, 2nd...)
%d Hari dalam sebulan, numerik(00..31)
%e Hari dalam sebulan, numerik(0..31)
%j Hari dalam setahun, numerik(001..366)
%M Nama Bulan(January..December)
%m Bulan, Numerik(00..12)
%Y Tahun, Empat digit
%y Tahun, Dua digit



Hari:

Pada contoh sebelumnya kita telah merubah format tanggal menjadi DD-MM-YYYY namun adakalanya kita mungkin juga membutuhkan penambahan nama hari, kita dapat melakukannya dengan menambahkan format string untuk hari:

Format Deskripsi
%a Singkatan nama hari(Sun..Sat)
%W Nama hari(Sunday..Saturday)
%w Hari, numerik(0=Sunday..6=Saturday)

Adapun contohnya sebagai berikut:

mysql> select date_format (t_lahir, "%W, %d %M, %Y") as "Tanggal Lahir" from mahasiswa limit 5;
+-----------------------------+
| Tanggal Lahir               |
+-----------------------------+
| Tuesday, 03 September, 1996 |
| Monday, 03 June, 1996       |
| Monday, 03 August, 1998     |
| Thursday, 23 February, 1995 |
| Monday, 13 March, 1995      |
+-----------------------------+
5 rows in set (0.00 sec)

Waktu

Format waktu sedikit berbeda jika kita menempatkannya di dalam date_formate sehingga tidak merubah format waktu seperti contoh berikut:

mysql> select date_format(curtime(), "%h:%m:%s") as Waktu;
+----------+
| Waktu    |
+----------+
| 02:11:55 |
+----------+
1 row in set (0.00 sec)

Format waktu yang digunakan adalah format 12 jam, jika kita menempatkan waktu didalam date_format maka kita cukup merubah format string untuk waktu dari 12 jam menjadi 24 jam seperti contoh berikut:

mysql> select date_format(curtime(), "%k:%m:%s") as Waktu;
+----------+
| Waktu    |
+----------+
| 14:11:35 |
+----------+
1 row in set (0.00 sec)

Adapun format string untuk Waktu adalah sebagai berikut:

Format Deskripsi
%f Microseconds (000000..999999)
%H Jam (00..23)
%h Jam (00..12)
%I Jam (00..12)
%i Menit, numerik (00..59)
%m Menit, numerik (00..59)
%p Menampilkan AM atau PM
%S Detik(00..59)
%s Detik(00..59)

Bahasa:

Dari semua contoh diatas kita telah berhasil merubah format tanggal default MySQL dari YYYY-MM-DD menjadi DD-MM-YYYY namun penyebutan hari maupun bulan dalam penanggalan masih menggunakan format default sehingga tidak menampilkan nama hari dan bulan sesuai dengan bahasa indonesia, untuk merubahnya kita dapat melakukannya dengan merubah waktu locale server menjadi indonesia dengan menggunakan lc_time_names, contohnya sebagai berikut:

mysql> select date_format (t_lahir, "%W, %d %M, %Y") as "Tanggal Lahir" from mahasiswa limit 5;
+----------------------------+
| Tanggal Lahir              |
+----------------------------+
| Tuesday, 03 September 1996 |
| Monday, 03 June 1996       |
| Monday, 03 August 1998     |
| Thursday, 23 February 1995 |
| Monday, 13 March 1995      |
+----------------------------+
5 rows in set (0.04 sec)

mysql> set lc_time_names = "id_ID";
Query OK, 0 rows affected (0.00 sec)

mysql> select date_format (t_lahir, "%W, %d %M %Y") as "Tanggal Lahir" from mahasiswa limit 5;
+---------------------------+
| Tanggal Lahir             |
+---------------------------+
| Selasa, 03 September 1996 |
| Senin, 03 Juni 1996       |
| Senin, 03 Agustus 1998    |
| Kamis, 23 Pebruari 1995   |
| Senin, 13 Maret 1995      |
+---------------------------+
5 rows in set (0.00 sec)

Sementara untuk merubah kembali local server menjadi default cukup dengan mengganti kode locale atau menutup terminal sehingga ketika membuka terminal baru akan kembali menjadi default.
Bayu Radityo

Seorang lulusan teknik informatika yang senang dalam berbagi ilmu pengetahuan, dan membuat karya digital berupa photomanipulation dan digital drawing. instagram external-link

Posting Komentar

Lebih baru Lebih lama