คำสั่งหลัก
ใช้ FROM_UNIXTIME() แปลง timestamp → datetime แล้ว DATE_FORMAT() จัดรูปแบบ
รูปแบบคำสั่ง
SELECT DATE_FORMAT(FROM_UNIXTIME(yourColumnName), '%b %d, %Y %l:%i %p PDT') FROM yourTableName;
ตัวอย่างครบถ้วน
1. สร้างตารางเก็บ timestamp
mysql> create table unixTimeStampFormatDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> MyTimeStampValue bigint
-> );
Query OK, 0 rows affected (0.59 sec)
2. เพิ่มข้อมูล timestamp ตัวอย่าง
mysql> insert into unixTimeStampFormatDemo(MyTimeStampValue) values(1334428200); Query OK, 1 row affected (0.20 sec) mysql> insert into unixTimeStampFormatDemo(MyTimeStampValue) values(1513881000); Query OK, 1 row affected (0.15 sec) mysql> insert into unixTimeStampFormatDemo(MyTimeStampValue) values(1542738600); Query OK, 1 row affected (0.14 sec) mysql> insert into unixTimeStampFormatDemo(MyTimeStampValue) values(1551637800); Query OK, 1 row affected (0.15 sec)
3. ดูข้อมูลดิบ
mysql> select * from unixTimeStampFormatDemo;
+----+------------------+ | Id | MyTimeStampValue | +----+------------------+ | 1 | 1334428200 | | 2 | 1513881000 | | 3 | 1542738600 | | 4 | 1551637800 | +----+------------------+
4. แปลงเป็นรูปแบบอ่านง่าย
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 | +-----------------------------------------------------------------------+
Format Specifiers ที่ใช้
| Specifier | ความหมาย | ตัวอย่าง |
|---|---|---|
| %b | ชื่อเดือนย่อ (Jan-Dec) | Apr |
| %d | วัน (01-31) | 15 |
| %Y | ปี 4 หลัก | 2012 |
| %l | ชั่วโมง 12h (1-12) ไม่มี leading zero | 12 |
| %i | นาที (00-59) | 00 |
| %p | AM/PM | AM |
รูปแบบยอดนิยมอื่นๆ
'%Y-%m-%d %H:%i:%s'→ 2019-03-04 12:00:00 (ISO datetime)'%d/%m/%Y'→ 04/03/2019 (ไทย)'%W, %M %d, %Y'→ Monday, March 04, 2019
แปลงกลับ: DateTime → Unix Timestamp
SELECT UNIX_TIMESTAMP('2019-03-04 12:00:00'); -- → 1551637800
หมายเหตุ: FROM_UNIXTIME ใช้ timezone ของ server (system_time_zone) หากต้องการ timezone เฉพาะ ใช้ CONVERT_TZ()