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

Query ข้อมูลตามปีใน MySQL

ใช้ฟังก์ชัน 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 จะเร็วกว่ามาก