Welcome

Welcome, thanks to look my blog

Monday, 22 February 2016

Menghitung selisih tanggal menggunakan fungsi DATEDIFF

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