ใช้ STR_TO_DATE() แปลงสตริงเป็นวันที่ แล้ว UNIX_TIMESTAMP() แปลงเป็น Timestamp
ไวยากรณ์
SELECT UNIX_TIMESTAMP(STR_TO_DATE(yourColumn, '%d/%m/%Y')) AS unixTimestamp FROM yourTable;
ตัวอย่างการใช้งาน
สร้างตาราง ConvertddmmyyyyInUnixTimeStamp:
mysql> CREATE TABLE ConvertddmmyyyyInUnixTimeStamp (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Created_at VARCHAR(30),
-> PRIMARY KEY(Id)
-> );
เพิ่มข้อมูล (รูปแบบ dd/mm/yyyy):
mysql> INSERT INTO ConvertddmmyyyyInUnixTimeStamp(Created_at) VALUES
-> ('10/11/2012'),('11/12/2013'),('10/12/2012'),('31/01/2015'),('24/04/2016'),('20/09/2017'),('15/03/2018');
ข้อมูลเดิม
+----+------------+ | Id | Created_at | +----+------------+ | 1 | 10/11/2012 | | 2 | 11/12/2013 | | 3 | 10/12/2012 | | 4 | 31/01/2015 | | 5 | 24/04/2016 | | 6 | 20/09/2017 | | 7 | 15/03/2018 | +----+------------+
คำสั่งแปลงเป็น Unix Timestamp
mysql> SELECT UNIX_TIMESTAMP(STR_TO_DATE(Created_at, '%d/%m/%Y')) AS UnixTimestamp FROM ConvertddmmyyyyInUnixTimeStamp;
ผลลัพธ์
+---------------+ | UnixTimestamp | +---------------+ | 1352485800 | | 1386700200 | | 1355077800 | | 1422642600 | | 1461436200 | | 1505845800 | | 1521052200 | +---------------+
รูปแบบวันที่: %d=วัน, %m=เดือน, %Y=ปี 4 หลัก