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

So sánh ngày trong MySQL bỏ qua phần giờ của DateTime

So sánh chỉ ngày (bỏ qua giờ) trong MySQL

Khi cột kiểu DATETIME hoặc TIMESTAMP chứa cả ngày và giờ, để so sánh chỉ phần ngày bạn dùng hàm DATE().

Cú pháp

SELECT * FROM tenBang WHERE DATE(cotDateTime) = 'yyyy-mm-dd';

Ví dụ minh họa

Tạo bảng ComparingDate:

CREATE TABLE ComparingDate (
    Name VARCHAR(100),
    Login DATETIME
);

Chèn dữ liệu:

INSERT INTO ComparingDate VALUES
('John', '2014-04-06 22:50:45'),
('Bob', '2018-12-15 15:07:46'),
('Carol', '2016-03-10 21:50:40'),
('David', '1995-08-08 23:40:47');

Truy vấn tìm bản ghi ngày 2016-03-10 (bỏ qua giờ):

SELECT * FROM ComparingDate WHERE DATE(Login) = '2016-03-10';

Kết quả

+-------+---------------------+
| Name  | Login               |
+-------+---------------------+
| Carol | 2016-03-10 21:50:40 |
+-------+---------------------+

Mẹo: Để tận dụng index, tránh dùng hàm trên cột trong WHERE. Thay vào đó dùng khoảng:

WHERE Login >= '2016-03-10' AND Login < '2016-03-11'

Cách này cho phép MySQL sử dụng index trên cột Login.