Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

หาจำนวน Login ระหว่าง 2 วันที่ใน MySQL ด้วย BETWEEN

การนับจำนวนการ 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 ... เพื่อเปรียบเทียบเฉพาะวันที่