Computer >> Máy Tính >  >> Lập trình >> MySQL

Chúng ta có thể chọn hàng bằng DATEPART () trong MySQL không? Nó có khả thi không?

Không có hàm DATEPART () trong MySQL, bạn cần sử dụng hàm MONTH () để trích xuất tên tháng từ cột ngày. Cú pháp như sau:

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

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau:

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

Bây giờ bạn có thể chèn một số bản ghi trong bảng bằng cách sử dụng lệnh insert. Truy vấn như sau:

mysql> insert into SelectRowFromDatePart(LoginDate) values(curdate());
Query OK, 1 row affected (0.21 sec)
mysql> insert into SelectRowFromDatePart(LoginDate) values(date_add(curdate(),interval -3 year));
Query OK, 1 row affected (0.19 sec)
mysql> insert into SelectRowFromDatePart(LoginDate) values('2014-05-21');
Query OK, 1 row affected (0.21 sec)
mysql> insert into SelectRowFromDatePart(LoginDate) values('2015-08-25');
Query OK, 1 row affected (0.23 sec)
mysql> insert into SelectRowFromDatePart(LoginDate) values('2018-12-31');
Query OK, 1 row affected (0.18 sec)
mysql> insert into SelectRowFromDatePart(LoginDate) values('2011-12-21');
Query OK, 1 row affected (0.21 sec)
mysql> insert into SelectRowFromDatePart(LoginDate) values('2013-10-02');
Query OK, 1 row affected (0.12 sec)
mysql> insert into SelectRowFromDatePart(LoginDate) values('2006-12-11');
Query OK, 1 row affected (0.17 sec)
mysql> insert into SelectRowFromDatePart(LoginDate) values('2010-03-09');
Query OK, 1 row affected (0.40 sec)
mysql> insert into SelectRowFromDatePart(LoginDate) values('2012-12-12');
Query OK, 1 row affected (0.70 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau:

mysql> select *from SelectRowFromDatePart;

Sau đây là kết quả:

+----+------------+
| 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 |
+----+------------+
10 rows in set (0.00 sec)

Đây là truy vấn để chọn hàng theo ngày, là MONTH ():

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

Sau đây là kết quả:

+----+------------+
| Id | LoginDate  |
+----+------------+
|  5 | 2018-12-31 |
|  6 | 2011-12-21 |
|  8 | 2006-12-11 |
| 10 | 2012-12-12 |
+----+------------+
4 rows in set (0.00 sec)