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).