เมื่อต้องการกรองข้อมูลเฉพาะปีปัจจุบัน (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'