Để thay đổi năm trong MySQL date, bạn cần sử dụng hàm DATE_FORMAT () với lệnh UPDATE. Cú pháp như sau.
UPDATE yourTableName SET yourDateColumnName = DATE_FORMAT(yourDateColumnName ,'yourYearValue-%m-%d');
Để 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 ChangeYear -> ( -> id int not null auto_increment, -> ArrivalTime date, -> PRIMARY KEY(id) -> ); Query OK, 0 rows affected (0.83 sec)
Chèn một số bản ghi vào bảng bằng lệnh chèn -
mysql> insert into ChangeYear(ArrivalTime) values(date_add(now(),interval -2 year)); Query OK, 1 row affected, 1 warning (0.20 sec) mysql> insert into ChangeYear(ArrivalTime) values('2012-10-24'); Query OK, 1 row affected (0.18 sec) mysql> insert into ChangeYear(ArrivalTime) values('2016-3-21'); Query OK, 1 row affected (0.19 sec) mysql> insert into ChangeYear(ArrivalTime) values('2015-4-24'); Query OK, 1 row affected (0.20 sec) mysql> insert into ChangeYear(ArrivalTime) values(curdate()); Query OK, 1 row affected (0.20 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 ChangeYear;
Sau đây là kết quả.
+----+-------------+ | id | ArrivalTime | +----+-------------+ | 1 | 2017-01-07 | | 2 | 2012-10-24 | | 3 | 2016-03-21 | | 4 | 2015-04-24 | | 5 | 2019-01-07 | +----+-------------+ 5 rows in set (0.00 sec)
Đây là truy vấn chỉ cập nhật năm trong cột ngày. Đối với ví dụ của chúng tôi, hãy để chúng tôi thay đổi chúng sang năm 2019 -
mysql> update ChangeYear -> set ArrivalTime = DATE_FORMAT(ArrivalTime,'2019-%m-%d'); Query OK, 4 rows affected (0.12 sec) Rows matched − 5 Changed − 4 Warnings − 0
Kiểm tra tất cả các bản ghi đã cập nhật từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -
mysql> select *from ChangeYear;
Sau đây là kết quả hiển thị năm được cập nhật 2019, nhưng phần còn lại của ngày vẫn giữ nguyên -
+----+-------------+ | id | ArrivalTime | +----+-------------+ | 1 | 2019-01-07 | | 2 | 2019-10-24 | | 3 | 2019-03-21 | | 4 | 2019-04-24 | | 5 | 2019-01-07 | +----+-------------+ 5 rows in set (0.00 sec)