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

Truy vấn ngày hiện tại trong thời gian mysql

Biểu thức của bạn ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate())) chỉ trả về phần ngày của ngày tuần trước, vì vậy tất cả dữ liệu sau ngày bắt đầu ngày này không được bao gồm.

Bạn có một số lựa chọn để giải quyết vấn đề này:

  1. Vòng đã tạo
SELECT *
FROM your_table
WHERE DATE(createdAt) BETWEEN 
    SUBDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), WEEKDAY(curdate())) AND
    ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate()));
  1. Sử dụng tình trạng ít mạnh hơn với ngày hôm sau:
SELECT *
FROM your_table
WHERE 
    createdAt >= SUBDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), WEEKDAY(curdate())) AND
    createdAt < ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 7-WEEKDAY(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. MySQL tham gia truy vấn bằng cách sử dụng như thế nào?

  2. Cơ sở dữ liệu MySQL không thể khởi động trên XAMPP dành cho Mac

  3. Trình cài đặt MySQL Popup Mysql lạ đang chạy chế độ cộng đồng

  4. Cập nhật MySQL nếu giá trị lớn hơn giá trị hiện tại đó

  5. Cần một mảng khối ngày tháng từ Cơ sở dữ liệu MySql