Mysql
 sql >> база данни >  >> RDS >> Mysql

Показване на празнини между датите в MySQL

по този начин:

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

Което означава:присъединете таблицата към себе си на съседни крайни/начални дати и изчислете разликата.

+------------+------------+------+
| 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. използвате PHP за създаване на HTML таблица от MSQL заявка, без дублиращи се редове?

  2. вмъкване на стойност на формата за избор на html в базата данни на mysql

  3. 1-1 Система за чат, използваща PHP/MySQL

  4. UTF8 символите не се показват правилно с таблици с данни и yadcf

  5. Прехвърляне на данни между MySQL и Oracle бази данни