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

MySQL:Najděte chybějící data mezi časovým obdobím

Toto je druhá odpověď, zveřejním ji samostatně.

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;

Toto je vlastní připojení, které uvádí datum, takže neexistuje žádný řádek s datem následujícím.

Tím se najde první den v mezeře, ale pokud chybí běhy několika dnů, nenahlásí všechna data v mezeře.



  1. Jak používat PBKDF2 v Oracle 12c?

  2. 4 způsoby, jak získat informace o struktuře tabulky v SQLite

  3. Lze MySQL FIND_IN_SET nebo ekvivalent nastavit tak, aby používal indexy?

  4. Jak připojit více databází v PHP, MYSQLi &PDO