sql >> Database >  >> RDS >> Mysql

MySQL:Vind ontbrekende datums tussen een datumbereik

Dit is een tweede antwoord, ik zal het apart plaatsen.

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;

Dit is een self-join die een datum rapporteert zodat er geen rij bestaat met de volgende datum.

Hiermee wordt de eerste dag in een gat gevonden, maar als er runs van meerdere dagen ontbreken, worden niet alle datums in het gat weergegeven.



  1. Java - MySQL naar Hive Import waar MySQL draait op Windows en Hive draait op Cent OS (Horton Sandbox)

  2. VERWIJDER UIT `tabel` ALS `alias` ... WAAR `alias`.`kolom` ... waarom syntaxisfout?

  3. Oracle NULLIF() functie

  4. PHPExcel en tekstterugloop