Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tampilkan celah antar tanggal di MySQL

seperti itu:

drop table if exists dates;
create table dates (d_from date, d_to date);
insert into dates values 
('2014-06-15'  , '2014-06-20'),
('2014-06-23'  , '2014-06-27' ),
('2014-06-29'  , '2014-06-30' );

select low.d_to, high.d_from, to_days(high.d_from) - to_days(low.d_to) - 1 as gap

from dates low, dates high
where high.d_from = (select min(d_from) from dates where d_from > low.d_to)
;

Artinya:gabungkan tabel dengan dirinya sendiri pada tanggal akhir/mulai yang berdekatan dan hitung selisihnya.

+------------+------------+------+
| d_to       | d_from     | gap  |
+------------+------------+------+
| 2014-06-20 | 2014-06-23 |    2 |
| 2014-06-27 | 2014-06-29 |    1 |
+------------+------------+------+



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL pilih berbeda tidak berfungsi

  2. Mysql terlalu lambat pada kueri sederhana antara dua tabel

  3. tabel penguncian tes mysqldump

  4. Di CentOS7, tidak dapat memulai MySQL

  5. Terhubung ke mysql di Amazon EC2 dari server jauh