Giới thiệu
Hàm UNIX_TIMESTAMP() chuyển DATETIME thành giây từ epoch (1970-01-01). Kết hợp STR_TO_DATE để parse chuỗi ngày tháng không chuẩn (ví dụ: '31-Jan-19').
Cú pháp
SELECT UNIX_TIMESTAMP(STR_TO_DATE(cot_ngay, '%d-%b-%y')) AS Numeric_Date FROM ten_bang;
Ví dụ minh họa
Bước 1: Tạo bảng và chèn dữ liệu định dạng dd-Mon-yy
CREATE TABLE demo34 (datevalue VARCHAR(40));
INSERT INTO demo34 VALUES ('31-Jan-19'), ('03-Mar-21'), ('13-Jun-20');
Bước 2: Chuyển đổi
SELECT UNIX_TIMESTAMP(STR_TO_DATE(datevalue, '%d-%b-%y')) AS Numeric_Date FROM demo34;
Kết quả
+--------------+
| Numeric_Date |
+--------------+
| 1548873000 |
| 1614709800 |
| 1591986600 |
+--------------+
Giải thích định dạng:
%d: Ngày 2 chữ số%b: Tên tháng viết tắt 3 chữ cái (Jan, Feb, ...)%y: Năm 2 chữ số
Kết quả là Unix timestamp (giây), có thể dùng cho tính toán, so sánh, hoặc chuyển sang ngôn ngữ khác.