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

MySQL ไม่มีฟังก์ชัน DATEPART() ใช้ MONTH() แทนได้อย่างไร?

MySQL ไม่มีฟังก์ชัน DATEPART() เหมือน SQL Server ต้องใช้ฟังก์ชัน MONTH() เพื่อดึงเดือนจากคอลัมน์วันที่

ไวยากรณ์

SELECT * FROM yourTableName WHERE MONTH(yourDateColumnName) = yourValue;

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

สร้างตาราง:

mysql> create table SelectRowFromDatePart (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> LoginDate date,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (2.42 sec)

เพิ่มข้อมูลทดสอบ:

mysql> insert into SelectRowFromDatePart(LoginDate) values(curdate());
mysql> insert into SelectRowFromDatePart(LoginDate) values(date_add(curdate(),interval -3 year));
mysql> insert into SelectRowFromDatePart(LoginDate) values('2014-05-21');
mysql> insert into SelectRowFromDatePart(LoginDate) values('2015-08-25');
mysql> insert into SelectRowFromDatePart(LoginDate) values('2018-12-31');
mysql> insert into SelectRowFromDatePart(LoginDate) values('2011-12-21');
mysql> insert into SelectRowFromDatePart(LoginDate) values('2013-10-02');
mysql> insert into SelectRowFromDatePart(LoginDate) values('2006-12-11');
mysql> insert into SelectRowFromDatePart(LoginDate) values('2010-03-09');
mysql> insert into SelectRowFromDatePart(LoginDate) values('2012-12-12');

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

+----+------------+
| Id | LoginDate  |
+----+------------+
|  1 | 2019-01-31 |
|  2 | 2016-01-31 |
|  3 | 2014-05-21 |
|  4 | 2015-08-25 |
|  5 | 2018-12-31 |
|  6 | 2011-12-21 |
|  7 | 2013-10-02 |
|  8 | 2006-12-11 |
|  9 | 2010-03-09 |
| 10 | 2012-12-12 |
+----+------------+

คิวรี่ดึงข้อมูลเดือน ธันวาคม (12):

mysql> select * from SelectRowFromDatePart where MONTH(LoginDate)=12;

ผลลัพธ์:

+----+------------+
| Id | LoginDate  |
+----+------------+
|  5 | 2018-12-31 |
|  6 | 2011-12-21 |
|  8 | 2006-12-11 |
| 10 | 2012-12-12 |
+----+------------+

หมายเหตุ: นอกจาก MONTH() แล้ว ยังมี YEAR(), DAY(), QUARTER() ให้ใช้งานได้เช่นกัน