Sử dụng DATE(NOW()) hoặc CURDATE() để so sánh chỉ phần ngày.
Cú pháp
SELECT * FROM tenBang WHERE DATE(tenCot) = DATE(NOW());
Tạo bảng demo
mysql> create table DemoTable706 (
UserId varchar(100),
UserName varchar(100),
UserSignupDate datetime
);
Query OK, 0 rows affected (0.57 sec)
Chèn dữ liệu (2 bản ghi ngày hôm nay 2019-07-22)
mysql> insert into DemoTable706 values('John1@gmail.com', 'John', '2019-01-31 12:45:22');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable706 values('Chris123@gmail.com', 'Chris', '2019-07-22 10:05:02');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable706 values('12Robert@gmail.com', 'Robert', '2019-06-22 11:25:22');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable706 values('DavidM@gmail.com', 'David', '2019-07-22 00:00:02');
Query OK, 1 row affected (0.12 sec)
Hiển thị tất cả
mysql> select * from DemoTable706;
Kết quả
+--------------------+----------+---------------------+ | UserId | UserName | UserSignupDate | +--------------------+----------+---------------------+ | John1@gmail.com | John | 2019-01-31 12:45:22 | | Chris123@gmail.com | Chris | 2019-07-22 10:05:02 | | 12Robert@gmail.com | Robert | 2019-06-22 11:25:22 | | DavidM@gmail.com | David | 2019-07-22 00:00:02 | +--------------------+----------+---------------------+ 4 rows in set (0.00 sec)
Truy vấn lọc bản ghi ngày hôm nay
mysql> select * from DemoTable706 where DATE(UserSignupDate) = DATE(NOW());
Kết quả - 2 bản ghi ngày 2019-07-22
+--------------------+----------+---------------------+ | UserId | UserName | UserSignupDate | +--------------------+----------+---------------------+ | Chris123@gmail.com | Chris | 2019-07-22 10:05:02 | | DavidM@gmail.com | David | 2019-07-22 00:00:02 | +--------------------+----------+---------------------+ 2 rows in set (0.00 sec)
Giải thích:
DATE(UserSignupDate): Lấy phần ngày từ datetime.DATE(NOW())hoặcCURDATE(): Ngày hiện tại của server.- So sánh bằng → lọc chính xác ngày (bỏ qua giờ).
Tối ưu cho bảng lớn (dùng index):
WHERE UserSignupDate >= CURDATE() AND UserSignupDate < CURDATE() + INTERVAL 1 DAY
Cách này cho phép dùng index trên cột UserSignupDate (range scan).