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

Chèn ngày định dạng mm/dd/yyyy vào MySQL?

Giải pháp: STR_TO_DATE()

Hàm STR_TO_DATE(str, format) parse chuỗi theo format chỉ định thành DATE/DATETIME.

Ví dụ minh họa

Tạo bảng

mysql> CREATE TABLE DemoTable (
    ShippingDate DATE
);

Chèn với STR_TO_DATE

mysql> INSERT INTO DemoTable VALUES(STR_TO_DATE('06-01-2019', '%m-%d-%Y'));
mysql> INSERT INTO DemoTable VALUES(STR_TO_DATE('01-31-2019', '%m-%d-%Y'));
mysql> INSERT INTO DemoTable VALUES(STR_TO_DATE('02-01-2018', '%m-%d-%Y'));

Kết quả (lưu trữ chuẩn YYYY-MM-DD)

+--------------+
| ShippingDate |
+--------------+
| 2019-06-01   |
| 2019-01-31   |
| 2018-02-01   |
+--------------+

Format Specifiers phổ biến

SpecifierÝ nghĩaVí dụ
%mTháng (01-12)01, 12
%dNgày (01-31)01, 31
%YNăm 4 chữ số2019
%yNăm 2 chữ số19
%HGiờ 24h (00-23)14
%hGiờ 12h (01-12)02
%iPhút (00-59)30
%sGiây (00-59)45
%pAM/PMPM

Các định dạng đầu vào thường gặp

Định dạng inputFormat string
06-01-2019'%m-%d-%Y'
06/01/2019'%m/%d/%Y'
01-31-2019'%m-%d-%Y'
January 31, 2019'%M %d, %Y'
31-Jan-2019'%d-%b-%Y'
20190601'%Y%m%d'

Ngược lại: DATE_FORMAT() để xuất

mysql> SELECT DATE_FORMAT(ShippingDate, '%m-%d-%Y') FROM DemoTable;
+-----------------------------------------+
| DATE_FORMAT(ShippingDate, '%m-%d-%Y')   |
+-----------------------------------------+
| 06-01-2019                              |
| 01-31-2019                              |
| 02-01-2018                              |
+-----------------------------------------+

Lưu ý quan trọng

  • MySQL lưu trữ DATE luôn ở định dạng YYYY-MM-DD nội bộ
  • STR_TO_DATE chỉ dùng khi INSERT/UPDATE từ chuỗi
  • Sai format → trả về NULL (không báo lỗi)
  • Cân nhắc validate/sanitize ở application layer trước khi INSERT