ใช้ฟังก์ชัน YEAR(date_column) ดึงปี แล้วกรองใน WHERE
ไวยากรณ์
SELECT * FROM yourTableName WHERE YEAR(yourColumnName) = yourYearValue;
ตัวอย่างการใช้งาน
1. สร้างตารางและข้อมูล
mysql> CREATE TABLE DemoTable (
-> CustomerName VARCHAR(100),
-> ShippingDate DATETIME
-> );
mysql> INSERT INTO DemoTable VALUES
('Chris', '2019-01-21'), ('Robert', '2018-02-21'), ('David', '2016-04-01');
2. Query ปี 2016
mysql> SELECT * FROM DemoTable WHERE YEAR(ShippingDate) = 2016;
ผลลัพธ์
+--------------+---------------------+ | CustomerName | ShippingDate | +--------------+---------------------+ | David | 2016-04-01 00:00:00 | +--------------+---------------------+
ฟังก์ชันวันที่ที่เกี่ยวข้อง
| ฟังก์ชัน | คืนค่า | ตัวอย่าง |
|---|---|---|
YEAR(date) | ปี (1000-9999) | 2019 |
MONTH(date) | เดือน (1-12) | 1 |
DAY(date) | วัน (1-31) | 21 |
QUARTER(date) | ไตรมาส (1-4) | 1 |
WEEK(date) | สัปดาห์ในปี (0-53) | 3 |
ประสิทธิภาพ: หลีกเลี่ยง YEAR() บนคอลัมน์
-- ช้า: ไม่ใช้ Index WHERE YEAR(ShippingDate) = 2016 -- เร็ว: ใช้ Range Query (ใช้ Index ได้) WHERE ShippingDate >= '2016-01-01' AND ShippingDate < '2017-01-01'
สรุป: สร้าง Index บน ShippingDate แล้วใช้ Range Query จะเร็วกว่ามาก