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

Chuyển đổi Unix Timestamp sang định dạng ngày giờ trong MySQL

Sử dụng FROM_UNIXTIME() chuyển timestamp thành DATETIME, sau đó DATE_FORMAT() để định dạng hiển thị.

Cú pháp

SELECT DATE_FORMAT(FROM_UNIXTIME(tên_cột), 'định_dạng_mong_muốn') FROM tên_bảng;

Ví dụ minh họa

Tạo bảng lưu Unix timestamp (giây từ 1970-01-01):

mysql> CREATE TABLE unixTimeStampFormatDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> MyTimeStampValue BIGINT
    -> );
Query OK, 0 rows affected (0.59 sec)

Chèn các timestamp mẫu:

mysql> INSERT INTO unixTimeStampFormatDemo(MyTimeStampValue) VALUES
    -> (1334428200), (1513881000), (1542738600), (1551637800);

Xem dữ liệu gốc:

mysql> SELECT * FROM unixTimeStampFormatDemo;
+----+------------------+
| Id | MyTimeStampValue |
+----+------------------+
| 1  | 1334428200       |
| 2  | 1513881000       |
| 3  | 1542738600       |
| 4  | 1551637800       |
+----+------------------+

Chuyển đổi sang định dạng đọc được (tháng tên, ngày, năm, giờ 12h, AM/PM, timezone):

mysql> SELECT DATE_FORMAT(FROM_UNIXTIME(MyTimeStampValue), '%b %d, %Y %l:%i %p PDT') 
    -> FROM unixTimeStampFormatDemo;
+-----------------------------------------------------------------------+
| DATE_FORMAT(FROM_UNIXTIME(MyTimeStampValue), '%b %d, %Y %l:%i %p PDT') |
+-----------------------------------------------------------------------+
| Apr 15, 2012 12:00 AM PDT                                             |
| Dec 22, 2017 12:00 AM PDT                                             |
| Nov 21, 2018 12:00 AM PDT                                             |
| Mar 04, 2019 12:00 AM PDT                                             |
+-----------------------------------------------------------------------+

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

PatternKết quả ví dụMô tả
%Y-%m-%d %H:%i:%s2019-03-12 20:55:00DATETIME chuẩn ISO
%d/%m/%Y12/03/2019Ngày/tháng/năm
%W, %M %d, %YTuesday, March 12, 2019Tên thứ, tên tháng
%H:%i20:55Giờ:phút 24h
%l:%i %p8:55 PMGiờ:phút 12h AM/PM

Chuyển ngược: DATETIME → Unix Timestamp

SELECT UNIX_TIMESTAMP('2019-03-12 20:55:00'); -- 1552421700

Lưu ý: FROM_UNIXTIME() sử dụng múi giờ của session (time_zone). Kiểm tra bằng SELECT @@time_zone;.