การนับจำนวนการ Login ในช่วงวันที่ด้วย BETWEEN
เพื่อนับจำนวนบันทึกที่มีวันที่ (DATETIME) อยู่ในช่วงระหว่าง 2 วันที่ เราใช้ COUNT(*) ร่วมกับ WHERE Login BETWEEN start_date AND end_date
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (Login DATETIME);
Query OK, 0 rows affected (0.66 sec)
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');
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+---------------------+
| 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 |
+---------------------+
4 rows in set (0.00 sec)
คำสั่งนับ Login ระหว่าง 2019-08-12 ถึง 2019-08-24
mysql> SELECT COUNT(*) FROM DemoTable WHERE Login BETWEEN '2019-08-12' AND '2019-08-24';
ผลลัพธ์:
+----------+
| count(*) |
+----------+
| 3 |
+----------+
1 row in set (0.05 sec)
คำอธิบาย
BETWEEN '2019-08-12' AND '2019-08-24': รวมทั้ง 2 วันที่ขอบเขต (Inclusive)- Login ที่ 2019-08-10 อยู่นอกช่วง → ไม่นับ
- Login ที่ 2019-08-12, 20, 24 อยู่ในช่วง → นับ 3 ครั้ง
- หากคอลัมน์เป็น DATETIME และเวลาไม่ใช่ 00:00:00 ควรใช้
DATE(Login) BETWEEN ...เพื่อเปรียบเทียบเฉพาะวันที่