sql >> Database >  >> RDS >> Mysql

Toon hiaten tussen datums in MySQL

in die zin:

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)
;

Dat betekent:voeg de tafel toe aan zichzelf op aangrenzende eind-/startdatums en bereken het verschil.

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



  1. Een bestelkolom bijwerken MySQL?

  2. Hoe kan ik twee voorwaarden controleren voordat ik ze invoeg?

  3. orakel lees kolomnamen uit select statement

  4. PHP MySQL-zoekopdracht met meerdere criteria