Selasa, 31 Desember 2013

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;
  
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;
Categories: , ,

7 komentar:

Subscribe to RSS Feed Follow me on Twitter!