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

Định dạng ngày trong MySQL: DATE_FORMAT() và STR_TO_DATE()

Chuyển đổi định dạng ngày tháng trong MySQL

Kết hợp STR_TO_DATE() (parse chuỗi thành DATE) và DATE_FORMAT() (format DATE thành chuỗi) để chuyển đổi giữa các định dạng ngày tháng tùy ý.

1. Tạo bảng và chèn dữ liệu (chuỗi ngày tháng tiếng Anh)

mysql> CREATE TABLE DemoTable (DueDate VARCHAR(100));
mysql> INSERT INTO DemoTable VALUES ('August 04,2019');

2. Xem dữ liệu

mysql> SELECT * FROM DemoTable;
+----------------+
| DueDate        |
+----------------+
| August 04,2019 |
+----------------+

3. Chuyển đổi: Chuỗi 'August 04,2019' → DATE → Chuỗi '2019-08-04'

mysql> SET @stringToDate = (
    SELECT DATE_FORMAT(STR_TO_DATE(DueDate, '%M %d,%Y'), '%Y-%m-%d')
    FROM DemoTable
);

4. Hiển thị kết quả

mysql> SELECT @stringToDate;
+---------------+
| @stringToDate |
+---------------+
| 2019-08-04    |
+---------------+

Giải thích 2 hàm:

HàmChức năngVí dụ
STR_TO_DATE(str, format)Parse chuỗi → DATE/DATETIMESTR_TO_DATE('August 04,2019', '%M %d,%Y') → 2019-08-04
DATE_FORMAT(date, format)Format DATE → chuỗiDATE_FORMAT('2019-08-04', '%Y-%m-%d') → '2019-08-04'

Các định dạng phổ biến:

SpecifierÝ nghĩaVí dụ
%YNăm 4 chữ số2019
%mTháng 2 chữ số08
%dNgày 2 chữ số04
%MTên tháng tiếng AnhAugust
%WTên thứSunday
%H:%i:%sGiờ:Phút:Giây 24h14:30:00

Ứng dụng: Import dữ liệu từ CSV/Excel (dd/mm/yyyy, Month dd,yyyy...) → chuẩn hóa thành DATE để lưu trữ, query hiệu quả.