MySQL: Menghitung selisih tanggal menggunakan fungsi DATEDIFF
sumber:https://gist.github.com/hidayat365/5899638
| Microsoft Windows [Version 6.1.7601] | |
| Copyright (c) 2009 Microsoft Corporation. All rights reserved. | |
| D:\xampp\mysql\bin>mysql -u root | |
| Welcome to the MySQL monitor. Commands end with ; or \g. | |
| Your MySQL connection id is 1 | |
| Server version: 5.5.16 MySQL Community Server (GPL) | |
| Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. | |
| Oracle is a registered trademark of Oracle Corporation and/or its | |
| affiliates. Other names may be trademarks of their respective | |
| owners. | |
| Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. | |
| mysql> use test; | |
| Database changed | |
| mysql> ---------------------------------------------------------------- | |
| mysql> -- create table | |
| mysql> ---------------------------------------------------------------- | |
| mysql> create table data_tanggal ( | |
| -> id int auto_increment primary key, | |
| -> tanggal date | |
| -> ) ; | |
| Query OK, 0 rows affected (0.17 sec) | |
| mysql> ---------------------------------------------------------------- | |
| mysql> -- insert data ke table tanggal | |
| mysql> ---------------------------------------------------------------- | |
| mysql> insert into data_tanggal (tanggal) | |
| -> values ('2013-01-01'), ('2013-02-01'), ('2013-03-01'), ('2013-04-01'), ('2013-07-01'), ('2013-08-01') ; | |
| Query OK, 6 rows affected (0.04 sec) | |
| Records: 6 Duplicates: 0 Warnings: 0 | |
| mysql> ---------------------------------------------------------------- | |
| mysql> -- coba lihat hasil insert-nya | |
| mysql> ---------------------------------------------------------------- | |
| mysql> select * from data_tanggal ; | |
| +----+------------+ | |
| | id | tanggal | | |
| +----+------------+ | |
| | 1 | 2013-01-01 | | |
| | 2 | 2013-02-01 | | |
| | 3 | 2013-03-01 | | |
| | 4 | 2013-04-01 | | |
| | 5 | 2013-07-01 | | |
| | 6 | 2013-08-01 | | |
| +----+------------+ | |
| 6 rows in set (0.00 sec) | |
| mysql> ---------------------------------------------------------------- | |
| mysql> -- bandingkan tanggal hari ini dengan tanggal yang ada di dalam database | |
| mysql> ---------------------------------------------------------------- | |
| mysql> select id, tanggal | |
| -> , current_date() as tgl_sekarang | |
| -> , datediff(current_date(), tanggal) as selisih | |
| -> from data_tanggal ; | |
| +----+------------+--------------+---------+ | |
| | id | tanggal | tgl_sekarang | selisih | | |
| +----+------------+--------------+---------+ | |
| | 1 | 2013-01-01 | 2013-07-01 | 181 | | |
| | 2 | 2013-02-01 | 2013-07-01 | 150 | | |
| | 3 | 2013-03-01 | 2013-07-01 | 122 | | |
| | 4 | 2013-04-01 | 2013-07-01 | 91 | | |
| | 5 | 2013-07-01 | 2013-07-01 | 0 | | |
| | 6 | 2013-08-01 | 2013-07-01 | -31 | | |
| +----+------------+--------------+---------+ | |
| 6 rows in set (0.00 sec) | |
| mysql> ---------------------------------------------------------------- | |
| mysql> -- sekarang dibalik, | |
| mysql> -- bandingkan tanggal yang ada di dalam database dengan tanggal hari ini | |
| mysql> ---------------------------------------------------------------- | |
| mysql> select id, tanggal | |
| -> , current_date() as tgl_sekarang | |
| -> , datediff(tanggal, current_date()) as selisih | |
| -> from data_tanggal ; | |
| +----+------------+--------------+---------+ | |
| | id | tanggal | tgl_sekarang | selisih | | |
| +----+------------+--------------+---------+ | |
| | 1 | 2013-01-01 | 2013-07-01 | -181 | | |
| | 2 | 2013-02-01 | 2013-07-01 | -150 | | |
| | 3 | 2013-03-01 | 2013-07-01 | -122 | | |
| | 4 | 2013-04-01 | 2013-07-01 | -91 | | |
| | 5 | 2013-07-01 | 2013-07-01 | 0 | | |
| | 6 | 2013-08-01 | 2013-07-01 | 31 | | |
| +----+------------+--------------+---------+ | |
| 6 rows in set (0.00 sec) | |
| mysql> ---------------------------------------------------------------- | |
| mysql> -- sekarang coba bandingkan tanggal fixed 2013-05-20 | |
| mysql> -- dengan tanggal yang ada di dalam database | |
| mysql> ---------------------------------------------------------------- | |
| mysql> select id, tanggal | |
| -> , '2013-05-20' as tgl_sekarang | |
| -> , datediff('2013-5-20', tanggal) as selisih | |
| -> from data_tanggal ; | |
| +----+------------+--------------+---------+ | |
| | id | tanggal | tgl_sekarang | selisih | | |
| +----+------------+--------------+---------+ | |
| | 1 | 2013-01-01 | 2013-05-20 | 139 | | |
| | 2 | 2013-02-01 | 2013-05-20 | 108 | | |
| | 3 | 2013-03-01 | 2013-05-20 | 80 | | |
| | 4 | 2013-04-01 | 2013-05-20 | 49 | | |
| | 5 | 2013-07-01 | 2013-05-20 | -42 | | |
| | 6 | 2013-08-01 | 2013-05-20 | -73 | | |
| +----+------------+--------------+---------+ | |
| 6 rows in set (0.00 sec) | |
| mysql> ---------------------------------------------------------------- | |
| mysql> -- sekarang dibalik, | |
| mysql> -- bandingkan tanggal yang ada di dalam database | |
| mysql> -- dengan tanggal fixed 2013-05-20 | |
| mysql> ---------------------------------------------------------------- | |
| mysql> select id, tanggal | |
| -> , '2013-05-20' as tgl_sekarang | |
| -> , datediff(tanggal, '2013-5-20') as selisih | |
| -> from data_tanggal ; | |
| +----+------------+--------------+---------+ | |
| | id | tanggal | tgl_sekarang | selisih | | |
| +----+------------+--------------+---------+ | |
| | 1 | 2013-01-01 | 2013-05-20 | -139 | | |
| | 2 | 2013-02-01 | 2013-05-20 | -108 | | |
| | 3 | 2013-03-01 | 2013-05-20 | -80 | | |
| | 4 | 2013-04-01 | 2013-05-20 | -49 | | |
| | 5 | 2013-07-01 | 2013-05-20 | 42 | | |
| | 6 | 2013-08-01 | 2013-05-20 | 73 | | |
| +----+------------+--------------+---------+ | |
| 6 rows in set (0.00 sec) | |
| mysql> ---------------------------------------------------------------- | |
| mysql> -- Semangan Belajar!!! | |
| mysql> ---------------------------------------------------------------- | |
| mysql> |
No comments:
Post a Comment