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

Làm cách nào để thêm ngày vào một ngày trong MYSQL trong một truy vấn

Có vẻ như bạn muốn các hàng có end_date muộn hơn năm ngày trước.

Cách tốt nhất để đạt được điều đó là sử dụng

 WHERE end_date >= CURDATE() - INTERVAL 5 DAY

Việc thêm số nguyên vào ngày tháng không hoạt động trong MySQL (đó là một thứ của Oracle). Vì vậy, bạn cần sử dụng đơn vị INTERVAL n unit cú pháp.

Bạn sẽ nhận thấy rằng mệnh đề WHERE của tôi ở trên có chức năng tương đương với

 WHERE DATE(end_date) + INTERVAL 5 DAY >= DATE(NOW())

Tuy nhiên, công thức đầu tiên tốt hơn công thức thứ hai vì hai lý do.

  1. nếu bạn đề cập đến end_date trong mệnh đề WHERE mà không cần gói nó trong các phép tính, truy vấn của bạn có thể khai thác một chỉ mục trên cột đó và có thể chạy nhanh hơn.
  2. DATE(NOW())CURDATE() cả hai đều đề cập đến thời điểm đầu tiên của ngày hôm nay (nửa đêm). Nhưng CURDATE() đơn giản hơn một chút.


  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ỗi (1093):Bạn không thể cập nhật bảng mục tiêu để cập nhật trong Mệnh đề FROM

  2. php lỗi kết nối MySql

  3. Xóa một số lượng khỏi nhiều hàng trong cơ sở dữ liệu

  4. Kích thước hàng quá lớn (> 8126), tôi có thể thay đổi InnoDB thành MyISAM được không

  5. Máy chủ MySQL đã Gone Away trong Drupal 7