Giả sử bạn đã đặt ngày ở định dạng VARCHAR. Bây giờ nếu bạn muốn cập nhật định dạng, hãy sử dụng lệnh UPDATE cùng với STR_TO_DATE (). Cú pháp như sau -
update yourTableName set yourColumnName=str_to_date(yourColumnName,'%m/%d/%Y');
Đầu tiên chúng ta hãy tạo một bảng -
mysql> create table DemoTable ( DueDate varchar(100) ); Query OK, 0 rows affected (0.56 sec)
Chèn một số bản ghi vào bảng bằng lệnh chèn -
mysql> insert into DemoTable values('12/01/2019'); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values('01/31/2016'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('03/17/2018'); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values('07/25/2017'); Query OK, 1 row affected (0.14 sec)
Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -
mysql> select *from DemoTable;
Điều này sẽ tạo ra kết quả sau -
+------------+ | DueDate | +------------+ | 12/01/2019 | | 01/31/2016 | | 03/17/2018 | | 07/25/2017 | +------------+ 4 rows in set (0.00 sec)
Sau đây là truy vấn để chuyển đổi dữ liệu varchar sang một định dạng khác trong MySQL -
mysql> update DemoTable set DueDate=str_to_date(DueDate,'%m/%d/%Y'); Query OK, 4 rows affected (0.18 sec) Rows matched: 4 Changed: 4 Warnings: 0
Hãy để chúng tôi kiểm tra các bản ghi bảng một lần nữa -
mysql> select *from DemoTable;
Điều này sẽ tạo ra kết quả sau -
+------------+ | DueDate | +------------+ | 2019-12-01 | | 2016-01-31 | | 2018-03-17 | | 2017-07-25 | +------------+ 4 rows in set (0.00 sec)