การแปลง DATETIME/TIMESTAMP เป็น UNIX Timestamp (Epoch)
ฟังก์ชัน UNIX_TIMESTAMP() ใน MySQL แปลงค่า DATETIME หรือ TIMESTAMP ให้เป็นจำนวนวินาทีนับจาก 1970-01-01 00:00:00 UTC (Unix Epoch)
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (Duetimestamp TIMESTAMP);
Query OK, 0 rows affected (2.66 sec)
mysql> INSERT INTO DemoTable VALUES(NOW());
mysql> INSERT INTO DemoTable VALUES('2016-01-21 12:34:00');
mysql> INSERT INTO DemoTable VALUES('2018-05-01 02:00:00');
mysql> INSERT INTO DemoTable VALUES('2017-03-02 01:10:20');
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+---------------------+
| Duetimestamp |
+---------------------+
| 2019-08-20 20:48:45 |
| 2016-01-21 12:34:00 |
| 2018-05-01 02:00:00 |
| 2017-03-02 01:10:20 |
+---------------------+
4 rows in set (0.00 sec)
คำสั่งแปลงเป็น UNIX Timestamp
mysql> SELECT UNIX_TIMESTAMP(Duetimestamp) FROM DemoTable;
ผลลัพธ์:
+------------------------------+
| unix_timestamp(Duetimestamp) |
+------------------------------+
| 1566314325 |
| 1453359840 |
| 1525120200 |
| 1488397220 |
+------------------------------+
4 rows in set (0.04 sec)
คำอธิบาย
UNIX_TIMESTAMP(column): แปลงค่า DATETIME/TIMESTAMP ในคอลัมน์เป็น Unix Timestamp (Integer)- ไม่ต้องระบุ Timezone เพราะ TIMESTAMP ใน MySQL เก็บเป็น UTC แล้ว
- ฟังก์ชันย้อนกลับ:
FROM_UNIXTIME(unix_timestamp)แปลงกลับเป็น DATETIME - มีประโยชน์เมื่อต้องการส่งค่าเวลาไปยังระบบอื่นที่ใช้ Epoch time (เช่น JavaScript, API)