ใช้ COUNT(*) กรองด้วย WHERE date(คอลัมน์) = 'วันที่' เพื่อนับแถวที่ตรงกับวันที่ต้องการ
ตัวอย่างการใช้งาน
สร้างตารางวันจัดส่ง:
mysql> create table DemoTable1946 (ShippingDate date);
เพิ่มข้อมูล (มี 2019-12-17 ซ้ำ 2 ครั้ง):
mysql> insert into DemoTable1946 values('2019-12-11'),('2018-12-11'),('2017-12-11'),('2019-04-22'),('2019-12-11'),('2015-12-11');
ดูข้อมูล:
mysql> select * from DemoTable1946;
+--------------+ | ShippingDate | +--------------+ | 2019-12-11 | | 2018-12-11 | | 2017-12-11 | | 2019-04-22 | | 2019-12-11 | | 2015-12-11 | +--------------+ 6 rows in set (0.00 sec)
คิวรีนับวันที่ 2019-12-11
mysql> select count(*) from DemoTable1946 where date(ShippingDate) = '2019-12-11';
ผลลัพธ์:
+----------+ | count(*) | +----------+ | 2 | +----------+ 1 row in set (0.00 sec)
คำอธิบายและขยาย
date(ShippingDate): แปลง DATETIME → DATE (ถ้าคอลัมน์เป็น DATE อยู่แล้ว ไม่ต้องใช้)- นับหลายวันที่พร้อมกัน:
SELECT ShippingDate, COUNT(*) as cnt FROM DemoTable1946 GROUP BY ShippingDate HAVING COUNT(*) > 1;
- ใช้ INDEX: ควรสร้าง Index บนคอลัมน์วันที่ เพื่อ Query เร็วขึ้น
- ช่วงวันที่: ใช้
BETWEEN '2019-12-01' AND '2019-12-31'แทน