Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

MySQL có hàm DATEPART() không? Cách trích xuất tháng từ ngày

MySQL không có hàm DATEPART() như SQL Server. Thay vào đó, bạn sử dụng hàm MONTH() để trích xuất tháng từ cột ngày.

Cú pháp

SELECT * FROM ten_bang WHERE MONTH(ten_cot_ngay) = gia_tri_thang;

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE demo_thang (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> LoginDate DATE,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (2.42 sec)

Chèn dữ liệu:

mysql> INSERT INTO demo_thang(LoginDate) VALUES(CURDATE());
mysql> INSERT INTO demo_thang(LoginDate) VALUES(DATE_ADD(CURDATE(), INTERVAL -3 YEAR));
mysql> INSERT INTO demo_thang(LoginDate) VALUES('2014-05-21');
mysql> INSERT INTO demo_thang(LoginDate) VALUES('2015-08-25');
mysql> INSERT INTO demo_thang(LoginDate) VALUES('2018-12-31');
mysql> INSERT INTO demo_thang(LoginDate) VALUES('2011-12-21');
mysql> INSERT INTO demo_thang(LoginDate) VALUES('2013-10-02');
mysql> INSERT INTO demo_thang(LoginDate) VALUES('2006-12-11');
mysql> INSERT INTO demo_thang(LoginDate) VALUES('2010-03-09');
mysql> INSERT INTO demo_thang(LoginDate) VALUES('2012-12-12');

Dữ liệu:

+----+------------+
| 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 |
+----+------------+

Truy vấn các bản ghi có tháng = 12:

mysql> SELECT * FROM demo_thang WHERE MONTH(LoginDate) = 12;

Kết quả:

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

Ngoài MONTH(), MySQL còn cung cấp YEAR(), DAY(), HOUR(), MINUTE(), SECOND() để trích xuất các thành phần ngày giờ khác.