Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แปลง UNIX Timestamp เป็นรูปแบบวันที่มนุษย์อ่านได้ใน MySQL

การแปลง Unix Timestamp ด้วย FROM_UNIXTIME()

ฟังก์ชัน FROM_UNIXTIME() แปลง Unix Timestamp (วินาทีนับจาก 1970-01-01 UTC) ให้เป็นวันที่/เวลาในรูปแบบที่อ่านง่าย พร้อมรองรับ Format String ตามต้องการ

ตัวอย่างการใช้งาน

สร้างตารางและเพิ่ม Timestamp:

mysql> CREATE TABLE timeConversionDemo (
    -> dateTimeConversion BIGINT
    -> );
Query OK, 0 rows affected (0.45 sec)

mysql> INSERT INTO timeConversionDemo VALUES(1554316200);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO timeConversionDemo VALUES(1546194600);
Query OK, 1 row affected (0.22 sec)
mysql> INSERT INTO timeConversionDemo VALUES(1511548200);
Query OK, 1 row affected (0.21 sec)

ข้อมูล Timestamp แบบดิบ:

mysql> SELECT * FROM timeConversionDemo;
+--------------------+
| dateTimeConversion |
+--------------------+
| 1554316200         |
| 1546194600         |
| 1511548200         |
+--------------------+
3 rows in set (0.00 sec)

แปลงเป็นรูปแบบ DD-MM-YYYY:

mysql> SELECT FROM_UNIXTIME(dateTimeConversion, '%d-%m-%Y') AS Conversion
    -> FROM timeConversionDemo;
+------------+
| Conversion |
+------------+
| 04-04-2019 |
| 31-12-2018 |
| 25-11-2017 |
+------------+
3 rows in set (0.00 sec)

แปลงเป็นรูปแบบ MySQL Date (YYYY-MM-DD):

mysql> SELECT FROM_UNIXTIME(dateTimeConversion, '%Y-%m-%d') AS Conversion
    -> FROM timeConversionDemo;
+------------+
| Conversion |
+------------+
| 2019-04-04 |
| 2018-12-31 |
| 2017-11-25 |
+------------+
3 rows in set (0.00 sec)

Format Specifiers ที่ใช้บ่อย

Specifierความหมายตัวอย่าง
%Yปี 4 หลัก2019
%mเดือน 01-1204
%dวัน 01-3104
%Hชั่วโมง 00-2312
%iนาที 00-5945
%sวินาที 00-5956
%Tเวลา HH:MM:SS12:45:56

คำสั่งแปลงพร้อมเวลา:

SELECT FROM_UNIXTIME(ts, '%Y-%m-%d %H:%i:%s') FROM table;

หมายเหตุ: FROM_UNIXTIME() ใช้ Time Zone ของ Session (ระบบ/เซิร์ฟเวอร์) หากต้องการ UTC คงที่ ให้ใช้ CONVERT_TZ(FROM_UNIXTIME(ts), @@session.time_zone, '+00:00') หรือตั้ง Session Time Zone ก่อน