Cara seseorang untuk menyimpan tanggal lahir di database MySQL ada beberapa macam ada yang menggunakan varchar karena mereka yang paling akrab dengan fungsi string dan ada yang menggunakan date.
Perbandingan menggunakan date dan varchar:
Menyimpan sebagai sebuah Date
• Sebuah mysql date membutuhkan 3 Bytes penyimpanan.
• Dapat menggunakan fungsi mysql untuk menghitung nilai-nilai secara langsung dalam query.
• Hanya akan menyimpan tanggal yang valid.
• Format dengan berbagai cara.
Menyimpan sebagai Varchar
• Sebuah string akan membutuhkan minimal 8 byte , atau 10 dengan pemisah.
• Tidak dapat memformat dengan mudah di sql.
• Harus memastikan tanggal benar-benar valid.
Kita dapat menghitung usia seseorang dalam query , menggunakan tanggal lahirnya. Misalnya kita membuat tabel seperti berikut:
mysql>CREATE TABLE user (id int AUTO_INCREMENT PRIMARY KEY,name varchar(20),birthdate date;
Berikut cara melihat umur nya sekarang.
mysql> select CURDATE();
+------------+
| CURDATE() |
+------------+
| 2013-31-12 |
+------------+
1 row in set (0.00 sec)
mysql> SELECT *, YEAR(CURDATE()) - YEAR(birthdate) AS age FROM user;
+----+--------+------------+------+
| id | name | birthdate | age |
+----+--------+------------+------+
| 1 | Fran | 1967-10-31 | 46 |
| 2 | Bill | 1964-05-07 | 49 |
| 3 | Jimmy | 1965-04-27 | 48 |
| 4 | Stacy | 2002-11-30 | 11 |
| 5 | George | 2007-10-25 | 6 |
+----+--------+------------+------+
5 rows in set (0.00 sec)
Contoh mencari umur dalam bentuk bulan.
mysql> select ((YEAR(CURDATE())-YEAR(birthdate))*12)+(MONTH(CURDATE())-MONTH(birthdate)) as umur from user;
Perbandingan menggunakan date dan varchar:
Menyimpan sebagai sebuah Date
• Sebuah mysql date membutuhkan 3 Bytes penyimpanan.
• Dapat menggunakan fungsi mysql untuk menghitung nilai-nilai secara langsung dalam query.
• Hanya akan menyimpan tanggal yang valid.
• Format dengan berbagai cara.
Menyimpan sebagai Varchar
• Sebuah string akan membutuhkan minimal 8 byte , atau 10 dengan pemisah.
• Tidak dapat memformat dengan mudah di sql.
• Harus memastikan tanggal benar-benar valid.
Kita dapat menghitung usia seseorang dalam query , menggunakan tanggal lahirnya. Misalnya kita membuat tabel seperti berikut:
Kemudian kita tambah datanya.
INSERT INTO user (name, birthdate) VALUES ('Fran', '1967-10-31');
INSERT INTO user (name, birthdate) VALUES ('Bill', '1964-05-07');
INSERT INTO user (name, birthdate) VALUES ('Jimmy', '1965-04-27');
INSERT INTO user (name, birthdate) VALUES ('Stacy', '2002-11-30');
INSERT INTO user (name, birthdate) VALUES ('George', '2007-10-25');
mysql> select * from user;
+----+--------+------------+
| id | name | birthdate |
+----+--------+------------+
| 1 | Fran | 1967-10-31 |
| 2 | Bill | 1964-05-07 |
| 3 | Jimmy | 1965-04-27 |
| 4 | Stacy | 2002-11-30 |
| 5 | George | 2007-10-25 |
+----+--------+------------+
5 rows in set (0.00 sec)
Berikut cara melihat umur nya sekarang.
mysql> select CURDATE();
+------------+
| CURDATE() |
+------------+
| 2013-31-12 |
+------------+
1 row in set (0.00 sec)
mysql> SELECT *, YEAR(CURDATE()) - YEAR(birthdate) AS age FROM user;
+----+--------+------------+------+
| id | name | birthdate | age |
+----+--------+------------+------+
| 1 | Fran | 1967-10-31 | 46 |
| 2 | Bill | 1964-05-07 | 49 |
| 3 | Jimmy | 1965-04-27 | 48 |
| 4 | Stacy | 2002-11-30 | 11 |
| 5 | George | 2007-10-25 | 6 |
+----+--------+------------+------+
5 rows in set (0.00 sec)
Contoh mencari umur dalam bentuk bulan.
mysql> select ((YEAR(CURDATE())-YEAR(birthdate))*12)+(MONTH(CURDATE())-MONTH(birthdate)) as umur from user;
kereen,, makasih bang
BalasHapusterima kasih juga atas kunjungannya.
Hapusanjir mantep gan.. thanks query2 kramat nya...
BalasHapusThankyou
BalasHapusmakasih gan..
BalasHapusternyata saya salah masukin format harusnya YEAR bukan DATE
hehehehe... :D
makasih gan,,
BalasHapuskeren querynya,,work ini..
Excellent. Thank you Sir.
BalasHapus