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

Làm thế nào để nhận được các ngày từ thứ hai cuối cùng cho đến ngày hiện tại?

Trước tiên, bạn phải tính xem thứ hai tuần trước là bao nhiêu ngày trước, bằng cách sử dụng DAYOFWEEK , sau đó lấy ngày hiện tại trừ đi -

SELECT * from table
WHERE date >= DATE_SUB(CURDATE(),INTERVAL MOD(DAYOFWEEK(CURDATE())-2,7) DAY)
AND   date <= DATE_ADD(CURDATE(), INTERVAL MOD(7 - (DAYOFWEEK(CURDATE()) - 1), 7) DAY)

Tôi không chắc 100% về các con số +/- ở đây, mặc dù vậy, bạn sẽ có thể tìm ra từ điều này

CHỈNH SỬA:Nếu tính năng này chỉ chạy vào chủ nhật vào cuối kỳ, thì có một phiên bản đơn giản hơn nhiều -

SELECT * from table
WHERE date >= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
AND   date <= CURDATE()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CDbConnection không mở được kết nối DB:không thể tìm thấy trình điều khiển trong Yii

  2. Thao tác bit và truy xuất MySQL trong PHP

  3. Truy vấn MySQL, MAX () + GROUP BY

  4. Có cách nào trong SQL (MySQL) để thực hiện một LỆNH LỆNH theo vòng tròn trên một trường cụ thể không?

  5. MySQL Workbench - Forward Engineering - Lỗi 1005:Không thể tạo bảng (errno:150)