Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:znajdź brakujące daty w zakresie dat

To druga odpowiedź, opublikuję ją osobno.

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;

Jest to sprzężenie własne, które zgłasza taką datę, że nie istnieje żaden wiersz z datą następującą.

Spowoduje to znalezienie pierwszego dnia przerwy, ale jeśli brakuje kilku dni, nie zostanie zgłoszone wszystkie daty w przerwie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obsługa wyjątków kluczy obcych w PHP

  2. Jak używać cURL do pobierania określonych danych ze strony internetowej, a następnie zapisywać je w mojej bazie danych za pomocą php

  3. Jak skonfigurować zmienną środowiskową PYTHON_EGG_CACHE na Macu?

  4. Dodaj numerowaną kolumnę listy do zwróconego zapytania MySQL

  5. Dane w kolumnie są za długie — dlaczego?