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

Truy vấn MySQL lấy người dùng đăng nhập hôm nay?

Để lấy danh sách người dùng đăng nhập trong hôm nay, bạn so sánh cột ngày (kiểu chuỗi) với hàm CURDATE() sau khi chuyển đổi bằng STR_TO_DATE. Cú pháp:

SELECT cot1, cot2, ... FROM ten_bang WHERE STR_TO_DATE(cot_ngay, 'dinh_dang') = CURDATE();

Ví dụ với bảng DateEqualToday lưu tên và ngày đăng nhập:

+------+------------+-----------+------------+
| Id   | First_Name | Last_Name | LoginDate  |
+------+------------+-----------+------------+
|    1 | James      | Smith     | 20-12-2018 |
|    2 | Carol      | Taylor    | 21-12-2017 |
|    3 | John       | Smith     | 21-12-2018 |
|    4 | Maria      | Garcia    | 22-12-2018 |
|    5 | Mike       | Davis     | 21-12-2018 |
|    6 | Bob        | Wilson    | 21-12-2018 |
+------+------------+-----------+------------+

Truy vấn lọc người dùng đăng nhập hôm nay (giả sử hôm nay là 21-12-2018):

mysql> SELECT Id, First_Name, LoginDate
    -> FROM DateEqualToday
    -> WHERE STR_TO_DATE(LoginDate, '%d-%m-%Y') = CURDATE();

Kết quả

+------+------------+------------+
| Id   | First_Name | LoginDate  |
+------+------------+------------+
|    3 | John       | 21-12-2018 |
|    5 | Mike       | 21-12-2018 |
|    6 | Bob        | 21-12-2018 |
+------+------------+------------+

Giải thích: Hàm CURDATE() chỉ trả về ngày hiện tại (không có giờ), nên so sánh chính xác với phần ngày sau khi chuyển đổi từ chuỗi.