Dùng hàm UNIX_TIMESTAMP(cot_datetime) để chuyển DATETIME/TIMESTAMP thành số giây từ epoch (1970-01-01 UTC).
Cú pháp
SELECT UNIX_TIMESTAMP(cot_datetime) AS timestamp_number FROM ten_bang;
Ví dụ minh họa
Tạo bảng DateTimeToNumberDemo:
CREATE TABLE DateTimeToNumberDemo (
Id INT NOT NULL AUTO_INCREMENT,
releasedDate DATETIME, PRIMARY KEY (Id)
);
INSERT INTO DateTimeToNumberDemo (releasedDate) VALUES
(NOW()), (CURDATE()), ('1978-01-19'), ('2016-09-13'), ('2017-11-12'), ('2018-12-09');
Truy vấn chuyển đổi
SELECT UNIX_TIMESTAMP(releasedDate) AS DateToNumber FROM DateTimeToNumberDemo;
Kết quả (ví dụ):
+--------------+
| DateToNumber |
+--------------+
| 1547308257 |
| 1547231400 |
| 253996200 |
| 1473705000 |
| 1510425000 |
| 1544293800 |
+--------------+
Lưu ý:
- Kết quả phụ thuộc vào
time_zonecủa session.TIMESTAMPchuyển đổi múi giờ,DATETIMEkhông. - Ngược lại:
FROM_UNIXTIME(so_nguyen)chuyển số → DATETIME. - MySQL 8.0+:
UNIX_TIMESTAMP()hỗ trợ đến năm 2038 (32-bit). Cân nhắcBIGINTcho ứng dụng lâu dài.