Tutorial MySQL Lanjutan
10. Memformat Tampilan Tanggal
Tutorial Belajar MySQL: Cara Memformat Tampilan Tanggal MySQL (DATE_FORMAT)
Secara default, MySQL menyimpan tipe data tanggal (DATE) dengan format YYYY-MM-DD dan tipe data TIMESTAMP dengan format YYYY-MM-DD HH:MM:SS. Format default ini tidak cocok untuk tampilan akhir.
Pada tutorial belajar MySQL kali ini saya akan membahas fungsi DATE_FORMAT() yang bisa digunakan untuk mengubah tampilan tipe data DATE dan TIMESTAMP.
Format Dasar Fungsi DATE_FORMAT() MySQL
Fungsi DATE_FORMAT() sangat fleksibel untuk menampilkan output tanggal dari sebuah tabel MySQL. Fungsi ini membutuhkan 2 buah argumen, yakni kolom tabel yang ingin di-format dan ‘string format’ tanggal.
Berikut format dasar fungsi DATE_FORMAT MySQL:
1 | DATE_FORMAT(nama_kolom, ‘string format’) |
Sebagai contoh, saya akan memformat kolom dt dari tabel belajar_date agar ditampilkan dengan format: hari/bulan/tahun:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | mysql> SELECT * FROM belajar_date; + ------------+---------------------+ | dt | ts | + ------------+---------------------+ | 2015-08-10 | 2015-08-10 08:30:15 | | 2016-08-17 | 2016-08-17 10:01:01 | | 2017-12-31 | 2017-12-31 23:59:59 | | 2015-08-04 | 2015-08-04 15:34:14 | + ------------+---------------------+ 4 rows in set (0.00 sec) mysql> SELECT DATE_FORMAT(dt, '%d/%m/%Y' ) FROM belajar_date; + -----------------------------+ | DATE_FORMAT(dt, '%d/%m/%Y' ) | + -----------------------------+ | 10/08/2015 | | 17/08/2016 | | 31/12/2017 | | 04/08/2015 | + -----------------------------+ 4 rows in set (0.00 sec) |
Dapat terlihat hasil query SELECT DATE_FORMAT(dt, ‘%d/%m/%Y’) FROM belajar_date akan menghasilkan kolom dt dengan tampilan yang umum kita gunakan di Indonesia.
Bagaimana cara membuat ‘string format’ ini? Kita harus merangkainya menggunakan karakter khusus sesuai dengan tabel berikut:
Format | Penjelasan |
---|---|
%a | Abbreviated weekday name (Sun..Sat) |
%b | Abbreviated month name (Jan..Dec) |
%c | Month, numeric (0..12) |
%D | Day of the month with English suffix (0th, 1st, 2nd, 3rd, …) |
%d | Day of the month, numeric (00..31) |
%e | Day of the month, numeric (0..31) |
%f | Microseconds (000000..999999) |
%H | Hour (00..23) |
%h | Hour (01..12) |
%I | Hour (01..12) |
%i | Minutes, numeric (00..59) |
%j | Day of year (001..366) |
%k | Hour (0..23) |
%l | Hour (1..12) |
%M | Month name (January..December) |
%m | Month, numeric (00..12) |
%p | AM or PM |
%r | Time, 12-hour (hh:mm:ss followed by AM or PM) |
%S | Seconds (00..59) |
%s | Seconds (00..59) |
%T | Time, 24-hour (hh:mm:ss) |
%U | Week (00..53), where Sunday is the first day of the week; WEEK() mode 0 |
%u | Week (00..53), where Monday is the first day of the week; WEEK() mode 1 |
%V | Week (01..53), where Sunday is the first day of the week; WEEK() mode 2; used with %X |
%v | Week (01..53), where Monday is the first day of the week; WEEK() mode 3; used with %x |
%W | Weekday name (Sunday..Saturday) |
%w | Day of the week (0=Sunday..6=Saturday) |
%X | Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V |
%x | Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v |
%Y | Year, numeric, four digits |
%y | Year, numeric (two digits) |
%% | A literal “%” character |
%x | x, for any “x” not listed above |
Cara Penggunaan Fungsi DATE_FORMAT() MySQL
Berdasarkan tabel diatas, kita bisa merangkai format apapun tergantung kebutuhan. Sebagai contoh, jika saya ingin membuat tampilan seperti: ‘10 – 08 – 2015’, maka string formatnya adalah: ‘%d – %m – %Y’. Atau jika saya ingin tampilannya menjadi ‘10 August 2015’, maka string formatnya menggunakan: ‘%d %M %Y’.
Berikut beberapa contoh praktek merangkai ‘string_format’ menggunakan tabel belajar_date:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | mysql> SELECT DATE_FORMAT(dt, '%d - %m - %Y' ) FROM belajar_date; + ---------------------------------+ | DATE_FORMAT(dt, '%d - %m - %Y' ) | + ---------------------------------+ | 10 - 08 - 2015 | | 17 - 08 - 2016 | | 31 - 12 - 2017 | | 04 - 08 - 2015 | + ---------------------------------+ 4 rows in set (0.00 sec) mysql> SELECT DATE_FORMAT(dt, '%d %M %Y' ) FROM belajar_date; + -----------------------------+ | DATE_FORMAT(dt, '%d %M %Y' ) | + -----------------------------+ | 10 August 2015 | | 17 August 2016 | | 31 December 2017 | | 04 August 2015 | + -----------------------------+ 4 rows in set (0.00 sec) mysql> SELECT DATE_FORMAT(ts, '%d %M %Y, %k:%i:%s' ) FROM belajar_date; + ---------------------------------------+ | DATE_FORMAT(ts, '%d %M %Y, %k:%i:%s' ) | + ---------------------------------------+ | 10 August 2015, 8:30:15 | | 17 August 2016, 10:01:01 | | 31 December 2017, 23:59:59 | | 04 August 2015, 15:34:14 | + ---------------------------------------+ 4 rows in set (0.03 sec) |
Pada query terakhir, saya men-format tampilan kolom ts. Kolom ini menggunakan tipe data TIMESTAMP, sehingga kita juga bisa menformat bagian time-nya.
Dalam tutorial belajar MySQL kali ini kita telah membahas cara penggunaan fungsi DATE_FORMAT. Dengan fungsi ini, tipe data DATE dan TIMESTAMP MySQL bisa ditampilkan sesuai kebutuhan.