Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Lấy bản ghi của ngày hôm qua trong MySQL

Cú pháp chuẩn

SELECT * FROM bang 
WHERE DATE(cot_datetime) = DATE(NOW() - INTERVAL 1 DAY);

Giải thích

  • DATE(cot): Lấy phần ngày, bỏ giờ
  • NOW() - INTERVAL 1 DAY: Thời điểm 24h trước
  • DATE(...) ngoài: Chỉ so sánh phần ngày

Ví dụ thực tế

Dữ liệu (giả sử hôm nay 2019-02-27)

+----+---------------------+
| Id | ArrivalDateTime     |
+----+---------------------+
| 1  | 2014-11-09 13:45:21 |
| 2  | 2017-10-19 11:41:31 |
| 3  | 2019-02-25 10:40:45 |
| 4  | 2019-02-26 12:06:07 |  -- Hôm qua
| 5  | 2019-02-25 12:06:47 |
| 6  | 2019-02-27 11:45:49 |  -- Hôm nay
+----+---------------------+

Truy vấn

mysql> SELECT * FROM yesterDayRecordsDemo 
    -> WHERE DATE(ArrivalDateTime) = DATE(NOW() - INTERVAL 1 DAY);

Kết quả

+----+---------------------+
| Id | ArrivalDateTime     |
+----+---------------------+
| 4  | 2019-02-26 12:06:07 |
+----+---------------------+

Các biến thể

  • 3 ngày trước: INTERVAL 3 DAY
  • Tuần trước: INTERVAL 1 WEEK
  • Tháng trước: INTERVAL 1 MONTH
  • Mốc cố định: WHERE DATE(cot) = '2019-02-26'

Mẹo tối ưu: Tránh dùng function trên cột trong WHERE nếu có index. Thay vào đó:

WHERE cot >= '2019-02-26' AND cot < '2019-02-27'