Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL:Tìm ngày bị thiếu giữa một phạm vi ngày

Đây là câu trả lời thứ hai, tôi sẽ đăng riêng.

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;

Đây là một liên kết tự báo cáo một ngày sao cho không có hàng nào tồn tại với ngày tiếp theo.

Điều này sẽ tìm thấy ngày đầu tiên bị thiếu, nhưng nếu có nhiều ngày bị thiếu, nó sẽ không báo cáo tất cả các ngày trong khoảng trống.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đặt bí danh cơ sở dữ liệu trong MySQL?

  2. Chèn bảng MySql nếu không tồn tại, nếu không, hãy cập nhật

  3. Làm cách nào để đặt sql ngày &giờ đầy đủ bằng java chứ không chỉ ngày?

  4. Giá trị mặc định không hợp lệ cho 'dateAdded'

  5. Thêm các trường bí danh MySQL với nhau