sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Find manglende datoer mellem et datointerval

Dette er et andet svar, jeg sender det separat.

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;

Dette er en selvtilslutning, der rapporterer en dato, således at der ikke findes en række med følgende dato.

Dette vil finde den første dag i et mellemrum, men hvis der mangler kørsler af flere dage, vil det ikke rapportere alle datoerne i mellemrummet.



  1. Returner alle filgrupper for den aktuelle database i SQL Server

  2. YEARWEEK() Eksempler – MySQL

  3. Hvordan sorteres resultaterne efter tidsstempel undtagen et af dem?

  4. MYSQL Geo Search med distanceydelse