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

Tìm số lần đăng nhập giữa hai ngày trong MySQL với BETWEEN

Đếm số bản ghi datetime rơi trong khoảng giữa hai ngày, dùng BETWEEN với cột DATETIME hoặc DATE.

Ví dụ minh họa

Tạo bảng login:

mysql> create table DemoTable ( 
    Login datetime 
);

Chèn dữ liệu:

mysql> insert into DemoTable values('2019-08-10');
mysql> insert into DemoTable values('2019-08-12');
mysql> insert into DemoTable values('2019-08-20');
mysql> insert into DemoTable values('2019-08-24');

Hiển thị dữ liệu (MySQL tự thêm 00:00:00 cho DATE literal):

mysql> select * from DemoTable;

Kết quả:

+---------------------+
| Login               |
+---------------------+
| 2019-08-10 00:00:00 |
| 2019-08-12 00:00:00 |
| 2019-08-20 00:00:00 |
| 2019-08-24 00:00:00 |
+---------------------+

Truy vấn COUNT với BETWEEN

mysql> select count(*) from DemoTable where Login between '2019-08-12' and '2019-08-24';

Kết quả:

+----------+
| count(*) |
+----------+
| 3        |
+----------+

Giải thích:

  • BETWEEN '2019-08-12' AND '2019-08-24': Kể cả 2 đầu (inclusive)
  • Khớp: 2019-08-12, 2019-08-20, 2019-08-24 → 3 bản ghi
  • 2019-08-10 < 2019-08-12 → không khớp

⚠️ Lưu ý quan trọng với DATETIME: Nếu cột là DATETIME có giờ phút giây, BETWEEN '2019-08-12' AND '2019-08-24' thực chất là BETWEEN '2019-08-12 00:00:00' AND '2019-08-24 00:00:00' → **bỏ sót** các bản ghi ngày 2019-08-24 sau 00:00:00.

Cách an toàn cho DATETIME: WHERE Login >= '2019-08-12' AND Login < '2019-08-25' (ngày kết thúc + 1 ngày).