sql >> Databáze >  >> RDS >> Mysql

Zobrazit mezery mezi daty v MySQL

podle těchto řádků:

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

Což znamená:připojte tabulku k sobě v sousední datum ukončení/zahájení a vypočítejte rozdíl.

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



  1. MySQL pořadí podle stejného pořadí hodnot v klauzuli IN

  2. Detekce duplicitních anglických jmen

  3. Jak získat poslední dva řádky s určitou hodnotou podle data v SQL

  4. pdo připravit jednoduché uvozovky