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

แปลง MySQL TIMESTAMP เป็น UNIX Timestamp ด้วย UNIX_TIMESTAMP()

การแปลง 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)