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

MySQL trích xuất năm từ định dạng ngày?

Để trích xuất năm từ định dạng ngày, bạn có thể sử dụng hàm tích hợp sẵn YEAR () từ MySQL. Truy vấn như sau -

mysql> SELECT YEAR(curdate()) as OnlyYearFromCurrentDate;

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

+-------------------------+
| OnlyYearFromCurrentDate |
+-------------------------+
| 2018                    |
+-------------------------+
1 row in set (0.00 sec)

Hoặc bạn có thể làm theo cách sau -

mysql> SELECT YEAR(date(now())) as OnlyYearFromCurrentDate;

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

+-------------------------+
| OnlyYearFromCurrentDate |
+-------------------------+
| 2018                    |
+-------------------------+
1 row in set (0.00 sec)

Với điều đó, bạn thậm chí có thể đạt được điều này khi cột là varchar. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table ExtractYearDemo
   −> (
   −> YourDueTime varchar(200)
   −> );
Query OK, 0 rows affected (1.15 sec)

Chèn các bản ghi vào bảng với sự trợ giúp của lệnh insert. Truy vấn như sau -

mysql> insert into ExtractYearDemo values('27-10-2011');
Query OK, 1 row affected (0.16 sec)

mysql> insert into ExtractYearDemo values('28-11-2012');
Query OK, 1 row affected (0.15 sec)

mysql> insert into ExtractYearDemo values('29-12-2018');
Query OK, 1 row affected (0.14 sec)

mysql> insert into ExtractYearDemo values('01-01-2019');
Query OK, 1 row affected (0.15 sec)

Hiển thị tất cả các bản ghi từ bảng với sự trợ giúp của câu lệnh SELECT. Truy vấn như sau -

mysql> select *from ExtractYearDemo;

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

+-------------+
| YourDueTime |
+-------------+
| 27-10-2011  |
| 28-11-2012  |
| 29-12-2018  |
| 01-01-2019  |
+-------------+
4 rows in set (0.00 sec)

Sau đây là truy vấn để trích xuất năm từ cột trong bảng khi cột có kiểu varchar -

mysql> select YEAR(STR_TO_DATE(yourDueTime, "%d-%m-%Y")) As OnlyYearFromDate from ExtractYearDemo;

Sau đây là kết quả hiển thị năm -

+------------------+
| OnlyYearFromDate |
+------------------+
|             2011 |
|             2012 |
|             2018 |
|             2019 |
+------------------+
4 rows in set (0.00 sec)