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

MySQL:Chọn tất cả các ngày trong một phạm vi ngay cả khi không có hồ sơ nào

Tôi hy vọng bạn sẽ tìm ra phần còn lại.

select  * from (
select date_add('2003-01-01 00:00:00.000', INTERVAL n5.num*10000+n4.num*1000+n3.num*100+n2.num*10+n1.num DAY ) as date from
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n1,
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n2,
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n3,
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n4,
(select 0 as num
   union all select 1
   union all select 2
   union all select 3
   union all select 4
   union all select 5
   union all select 6
   union all select 7
   union all select 8
   union all select 9) n5
) a
where date >'2011-01-02 00:00:00.000' and date < NOW()
order by date

Với

select n3.num*100+n2.num*10+n1.num as date

bạn sẽ nhận được một cột có các số từ 0 đến max (n3) * 100 + max (n2) * 10 + max (n1)

Vì ở đây chúng ta có tối đa n3 là 3, SELECT sẽ trả về 399, cộng với 0 -> 400 bản ghi (ngày trong lịch).

Bạn có thể điều chỉnh lịch động của mình bằng cách giới hạn lịch, chẳng hạn như từ phút (ngày) bạn có đến bây giờ ().



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONVERT_TZ () Ví dụ - MySQL

  2. Cách Tham gia MySQL và Postgres trong Chế độ xem Trực tiếp Vật chất hóa

  3. Ví dụ về câu lệnh JDBC - Chèn, Xóa, Cập nhật, Chọn bản ghi

  4. Chuyển kết quả cơ sở dữ liệu thành mảng

  5. Làm cách nào để biết giao dịch nào đang gây ra trạng thái khóa siêu dữ liệu bảng Đang chờ?