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

ใช้ปีปัจจุบันในเงื่อนไข WHERE ของ MySQL ด้วย YEAR(CURDATE())

เมื่อต้องการกรองข้อมูลเฉพาะปีปัจจุบัน (Current Year) ให้ใช้ฟังก์ชัน YEAR(CURDATE()) ในเงื่อนไข WHERE ซึ่งจะคำนวณปีปัจจุบันแบบ Dynamic ไม่ต้อง Hard-code

ตัวอย่างการใช้งาน

สร้างตารางเก็บปีเข้างาน:

mysql> create table DemoTable1360 (JoiningYear int);
mysql> insert into DemoTable1360 values(1998),(2018),(2016),(2019),(2017),(2015);

ข้อมูลทั้งหมด:

+-------------+
| JoiningYear |
+-------------+
| 1998        |
| 2018        |
| 2016        |
| 2019        |
| 2017        |
| 2015        |
+-------------+

คำสั่งกรองเฉพาะปีปัจจุบัน (สมมติปี 2019)

mysql> select * from DemoTable1360 where JoiningYear = year(curdate());

ผลลัพธ์ (ได้เฉพาะ 2019)

+-------------+
| JoiningYear |
+-------------+
| 2019        |
+-------------+

คำอธิบาย:

  • CURDATE() คืนค่าวันที่ปัจจุบันของ Server (YYYY-MM-DD)
  • YEAR(date) ดึงปีจากวันที่
  • YEAR(CURDATE()) = ปีปัจจุบัน (เช่น 2024)
  • ใช้ได้กับคอลัมน์ชนิด INT (เก็บแค่ปี) หรือ DATE/DATETIME (ใช้ YEAR(date_col) = YEAR(CURDATE()))
  • ประสิทธิภาพ: หากคอลัมน์มี Index ใช้ Range query ดีกว่า: WHERE date_col >= '2024-01-01' AND date_col < '2025-01-01'