ปัญหาของฟังก์ชัน UNIX_TIMESTAMP() คือมันคืนค่าจำนวนเต็มในขณะที่เราต้องการแทรกวันที่ที่กำหนดเอง นั่นคือไม่ใช่ส่วนจำนวนเต็มไปยังวันที่ของ MySQL
อย่าใช้ UNIX_TIMESTAMP() สำหรับคอลัมน์ของคุณที่กำหนดเป็น TIMESTAMP เพราะ UNIX_TIMESTAMP() คืนค่าจำนวนเต็ม
ตรวจสอบ UNIX_TIMESTAMP แบบสอบถามมีดังนี้ −
mysql> เลือก UNIX_TIMESTAMP( '2019-01-09 15 −48 −23') AS IntegerValue;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+-------------+| IntegerValue |+--------------+| 1547029103 |+--------------+1 แถวในชุด (0.00 วินาที)ดูผลลัพธ์ตัวอย่าง ฟังก์ชัน UNIX_TIMESTAMP() จะคืนค่าจำนวนเต็มของวันที่และเวลาที่เกี่ยวข้อง
ไวยากรณ์มีดังต่อไปนี้เพื่อแทรกวันที่ที่กำหนดเองสำหรับคอลัมน์ TIMESTAMP ของคุณ
INSERT INTO yourTableName(yourColumnName) values('yourCustomDateTime');
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง TimestampDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> yourTimestamp TIMESTAMP, -> คีย์หลัก (Id) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (2.14 วินาที)
ในการแทรกวันที่ที่กำหนดเองลงในฟิลด์การประทับเวลาของ MySQL ต่อไปนี้คือแบบสอบถาม -
mysql> แทรกลงใน TimestampDemo(yourTimestamp) ค่า ('2019-01-09 15 −48 −23');Query OK, 1 แถวได้รับผลกระทบ (0.37 วินาที)mysql> แทรกลงใน TimestampDemo (yourTimestamp) ค่า ('2018- 03-14 16 −4 −23');Query OK, 1 แถวได้รับผลกระทบ (0.37 วินาที)mysql> แทรกลงในค่า TimestampDemo(yourTimestamp) ('2017-12-10 10 −8 −20'); Query OK, 1 แถว ได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงใน TimestampDemo (yourTimestamp) ค่า ('2016-4-05 13 −45 −21'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.30 วินาที)
ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก TimestampDemo;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+----+----------------------+| รหัส | yourTimestamp |+----+----------------------+| 1 | 2019-01-09 15 −48 −23 || 2 | 2018-03-14 16 −04 −23 || 3 | 2017-12-10 10 −08 −20 || 4 | 2016-04-05 13 −45 −21 |+---+-----------------------+4 แถวในชุด (0.00 วินาที)