เมื่อต้องการนับจำนวนรายการตามวันที่ (เฉพาะส่วนวันที่ ไม่รวมเวลา) และแสดงเฉพาะวันที่ที่มีข้อมูลซ้ำ สามารถใช้ฟังก์ชัน DATE() ร่วมกับ GROUP BY และ COUNT(*)
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล timestamp:
mysql> create table DemoTable1321 (ArrivalDatetime timestamp);
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');
ข้อมูลทั้งหมด:
+---------------------+ | 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 | +---------------------+
คำสั่งนับจำนวนรายการตามวันที่
mysql> select date(ArrivalDatetime) as OnlyDate, count(*) as Total
-> from DemoTable1321
-> group by date(ArrivalDatetime)
-> order by date(ArrivalDatetime);
ผลลัพธ์
+------------+-------+ | OnlyDate | Total | +------------+-------+ | 2019-01-10 | 1 | | 2019-06-12 | 3 | | 2019-09-18 | 2 | +------------+-------+
คำอธิบาย: DATE() ดึงเฉพาะส่วนวันที่จาก datetime, GROUP BY จัดกลุ่มตามวันที่, และ COUNT(*) นับจำนวนแถวในแต่ละกลุ่ม