Friday, August 28, 2009

type data di mysql

Date/Tanggal merupakan salah satu type data yang sangat penting dalam Database, namun kebanyakan para progammer pemula menghidari type data ini, alasannya adalah karena SUSAH untuk dibuat interface (padahal sebenarnya nilai validasinya jauh lebih penting)


Dalam database mysql, tanggal ditampilkan dalam Format yyyy-mm-dd (misal 2009-01-01, untuk 1 Januari 2009).Sehingga format tersebut terkadang kurang nyaman untuk user()… nah bagaimana menyikapi hal ini agar format tanggal dapat tersaji dengan format yg biasa kita temui…yaitu 01-01-2009 untuk 1 Januari 2009…

Jika kita mempunyai suatu tabel, misal tbl_mhs dengan kolom sebagai berikut

1:
2:
3:
4:
5:
6:
7:
8:
9:



mysql> select * from tbl_mhs;
+-----------+-------+----------+---------+------+------------+
| nim | nama | alamat | jurusan | JK | tgl_lahir |
+-----------+-------+----------+---------+------+------------+
| TI7208001 | SANTI | KLATEN | 01 | P | 2008-12-17 |
| TI7208002 | RYAN | SOLO | 02 | L | 2008-08-11 |
| TI7208003 | ANDRI | BOYOLALI | 01 | L | 2008-07-08 |
+-----------+-------+----------+---------+------+------------+
3 rows in set (0.00 sec)

Jika kita ingin menampilkan dalam format dd-mm-yyyy dapat digunakan perintah seperti di bawah ini:

1:
2:
3:
4:
5:
6:
7:
8:
9:



mysql> select nim,nama,alamat,
date_format(tgl_lahir,'%d-%m-%Y') tgl_lahir from tbl_mhs;
+-----------+-------+----------+-----------------------------------+
| nim | nama | alamat | tgl_lahir |
+-----------+-------+----------+-----------------------------------+
| TI7208001 | SANTI | KLATEN | 17-01-2008|
| TI7208002 | RYAN | SOLO | 11-08-2008|
| TI7208003 | ANDRI | BOYOLALI | 08-07-2008|
+-----------+-------+----------+-----------------------------------+
3 rows in set (0.00 sec)

OK… data tanggal lahir sudah tersaji dengan baik…

Nah.. selanjutnya dalam MySQL kita dapat mengambil nilai tahun atau bulan saja pada field yg bertipe date, Caranya dengan menggunakan perintah

1:
2:
3:
4:
5:
6:
7:



mysql> select MONTH(curdate()) BULAN;
+-------+
| BULAN |
+-------+
| 3 |
+-------+
1 row in set (0.00 sec)

Artinya adalah

1. Curdate merupakan fungsi untuk mengambil tanggal sekarang
2. Month digunakan untuk menampilkan bulan pada suatu tangga, sedangk untuk mengambil tahun dapat digunakan function Year

Dari function ini kita dapat menghitung umur pembulatan seseorang dengan cara sebagai berikut

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:



mysql> select nim,nama,alamat,tgl_lahir,
(year(curdate())-year(tgl_lahir)) as umur FROM tbl_mhs;
+-----------+-------+----------+------------+------+
| nim | nama | alamat | tgl_lahir | umur |
+-----------+-------+----------+------------+------+
| TI7208001 | SANTI | KLATEN | 2008-12-17 | 1 |
| TI7208002 | RYAN | SOLO | 2008-08-11 | 1 |
| TI7208003 | ANDRI | BOYOLALI | 2008-07-08 | 1 |
+-----------+-------+----------+------------+------+
3 rows in set (0.02 sec)

Ingat cara ini akan membulatkan umur… jadi jika misal sekarang 01 januari 2009, tanggal lahirnya 20 Desember 2008 akan tetap dihitung 1 Tahun

2 comments:

heru said...

hem nemu temen sealiran nih,

salam kenal mas :)

Buat sendiri sebagai memory kDUO said...

oya...makasi yah..ya ni baru belajar.jadi sama2 bantu kalau ada kesulitan ya.kayak nya mas heru dah jago deh.