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

Truy vấn MySQL đếm ngày và lấy các ngày trùng lặp

Sử dụng hàm tập hợp COUNT(*) kết hợp với GROUP BY trên phần ngày của cột datetime.

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE DemoTable1321 (
    ArrivalDatetime TIMESTAMP
);

Chèn dữ liệu (có các ngày trùng lặp):

mysql> INSERT INTO DemoTable1321 VALUES(NOW());
mysql> INSERT INTO DemoTable1321 VALUES('2019-01-10 12:34:00');
mysql> INSERT INTO DemoTable1321 VALUES('2019-06-12 11:34:00');
mysql> INSERT INTO DemoTable1321 VALUES('2019-06-12 04:50:00');
mysql> INSERT INTO DemoTable1321 VALUES('2019-09-18 10:50:45');
mysql> INSERT INTO DemoTable1321 VALUES('2019-06-12 06:10:20');

Xem dữ liệu:

mysql> SELECT * FROM DemoTable1321;
+---------------------+
| ArrivalDatetime     |
+---------------------+
| 2019-09-18 21:49:17 |
| 2019-01-10 12:34:00 |
| 2019-06-12 11:34:00 |
| 2019-06-12 04:50:00 |
| 2019-09-18 10:50:45 |
| 2019-06-12 06:10:20 |
+---------------------+

Truy vấn đếm số lần xuất hiện của mỗi ngày (bỏ qua giờ):

mysql> SELECT DATE(ArrivalDatetime) AS OnlyDate, COUNT(*) AS Total
    FROM DemoTable1321
    GROUP BY DATE(ArrivalDatetime)
    ORDER BY DATE(ArrivalDatetime);

Kết quả:

+------------+-------+
| OnlyDate   | Total |
+------------+-------+
| 2019-01-10 | 1     |
| 2019-06-12 | 3     |
| 2019-09-18 | 2     |
+------------+-------+

Mẹo: Hàm DATE() trích xuất phần ngày từ datetime/timestamp. Bạn cũng có thể dùng CAST(ArrivalDatetime AS DATE).