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

MySQL:Намерете липсващи дати между диапазон от време

Това е втори отговор, ще го публикувам отделно.

SELECT DATE(r1.reportdate) + INTERVAL 1 DAY AS missing_date
FROM Reports r1
LEFT OUTER JOIN Reports r2 ON DATE(r1.reportdate) = DATE(r2.reportdate) - INTERVAL 1 DAY
WHERE r1.reportdate BETWEEN '2011-01-01' AND '2011-04-30' AND r2.reportdate IS NULL;

Това е самостоятелно присъединяване, което отчита дата, така че да не съществува ред със следващата дата.

Това ще намери първия ден в празнина, но ако има серии с липсващи няколко дни, няма да отчете всички дати в празнината.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранявайте и итерирайте резултата от заявката в mysqli

  2. Неправилна стойност на цяло число:'' за колона 'id' на ред 1

  3. Четене от файл в променлива - Bash Script take2

  4. MySql.Data.MySqlClient.MySqlException:„Локалният хост не поддържа SSL връзки.“

  5. Как да комбинирам два оператора UPDATE в една MySQL заявка?