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

Chuyển đổi DATETIME thành số (Unix timestamp) trong MySQL

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_zone của session. TIMESTAMP chuyển đổi múi giờ, DATETIME khô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ắc BIGINT cho ứng dụng lâu dài.