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

แปลงสตริง dd/mm/yyyy เป็น Unix timestamp ใน MySQL หรือไม่


แปลงสตริง dd/mm/yyyy เป็น Unix timestamp ด้วยความช่วยเหลือของ UNIX_TIMESTAMP() ไวยากรณ์มีดังนี้ −

เลือก UNIX_TIMESTAMP(STR_TO_DATE(yourColumnName,'%d/%m/%Y')) เป็น anyVariableName จาก yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง ConvertddmmyyyyInUnixTimeStamp -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Created_at varchar(30), -> PRIMARY KEY(Id) -> ); สืบค้นตกลง 0 แถวได้รับผลกระทบ (0.57 วินาที) 

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงใน ConvertddmmyyyyInUnixTimeStamp(Created_at) ค่า ('10/11/2012'); เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที)mysql> แทรกลงใน ConvertddmmyyyyInUnixTimeStamp(Created_at) ค่า ('11/12/2013');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงใน ConvertddmmyyyyInUnixTimeStamp(Created_at) ค่า ('10/12/2012'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า ConvertddmmyyyyInUnixTimeStamp(Created_at) (สร้าง) '31/01/2015'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงใน ConvertddmmyyyyInUnixTimeStamp(Created_at) ค่า ('24/04/2016'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงใน ConvertddmmyyyyInUnixTimeStamp(Created_at) ค่า ('20/09/2017'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.26 วินาที) mysql> แทรกลงใน ConvertddmmyyyyInUnixTimeStamp(Created_at) ค่า ('15/03/2018'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก ConvertddmmyyyyInUnixTimeStamp;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+----+-----------+| รหัส | สร้าง_at |+----+-----------+| 1 | 10/11/2012 || 2 | 11/12/2556 || 3 | 10/12/2555 || 4 | 31/01/2558 || 5 | 24/04/2559 || 6 | 20/09/2017 || 7 | 15/03/2018 |+----+------------+7 แถวในชุด (0.00 วินาที)

ให้เราแปลงสตริง dd/mm/yyyy เป็นเวลา UNIX:

mysql> เลือก unix_timestamp(str_to_date(Created_at,'%d/%m/%Y')) เป็น UnixTimestamp จาก ConvertddmmyyyyInUnixTimeStamp;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+--------------+| UnixTimestamp |+--------------+| 1352485800 || 1386700200 || 1355077800 || 1422642600 || 1461436200 || 1505845800 || 1521052200 |+--------------+7 แถวในชุด (0.00 วินาที)