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

MySQL แตกต่างกันระหว่างการประทับเวลาสองครั้งในหน่วยวินาที?


คุณสามารถใช้ฟังก์ชันในตัว UNIX_TIMESTAMP() จาก MySQL เพื่อรับการประทับเวลาและความแตกต่างระหว่างการประทับเวลาสองครั้ง ไวยากรณ์มีดังนี้ −

เลือก UNIX_TIMESTAMP(yourColumnName1) - UNIX_TIMESTAMP(yourColumnName2) เป็น anyVariableName จาก yourTableName

เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างตาราง ต่อไปนี้เป็นแบบสอบถามเพื่อสร้างตาราง −

mysql> สร้างตาราง DifferenceInSeconds −> ( −> FirstTimestamp TIMESTAMP, −> SecondTimestamp TIMESTAMP −> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.93 วินาที)

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

mysql> แทรกลงในค่า DifferenceInSeconds ('2012-12-12 13:16:55','2012-12-12 13:13:55'); เคียวรีตกลง ได้รับผลกระทบ 1 แถว (0.31 วินาที)mysql> เป็นค่า DifferenceInSeconds ('2014-10-11 12:15:50','2014-10-11 12:13:50'); เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า DifferenceInSeconds ('2018 -12-14 13:30:53','2018-12-14 13:27:53');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.21 วินาที)

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

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

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

<ก่อนหน้า>+---------------------+---------------------+| FirstTimestamp | SecondTimestamp |+---------------------+---------------------+| 2012-12-12 13:16:55 | 2012-12-12 13:13:55 || 2014-10-11 12:15:50 | 2014-10-11 12:13:50 || 2018-12-14 13:30:53 | 2018-12-14 13:27:53 |+---------------------------+---------------- -----+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้คือข้อความค้นหาเพื่อค้นหาความแตกต่างระหว่างการประทับเวลาสองครั้งในหน่วยวินาที แบบสอบถามมีดังนี้ −

mysql> SELECT UNIX_TIMESTAMP(FirstTimestamp) - UNIX_TIMESTAMP(SecondTimestamp) เป็นวินาทีจาก DifferenceInSeconds;

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

<ก่อนหน้า>+---------+| วินาที |+---------+| 180 || 120 || 180 |+---------+3 แถวในชุด (0.00 วินาที)

หมายเหตุ - หากคุณไม่ทราบว่าการประทับเวลาใดมากกว่า ให้ใช้ ABS()

ไวยากรณ์มีดังนี้ −

เลือก ABS(UNIX_TIMESTAMP(yourColumnName1) - UNIX_TIMESTAMP(yourColumnName2)) เป็นวินาทีจาก DifferenceInSeconds

ในการตรวจสอบไวยากรณ์ข้างต้น ให้เราแทรกบันทึกที่การประทับเวลาแรกมีค่าต่ำกว่า

mysql> แทรกลงในค่า DifferenceInSeconds ('2018-12-14 13:26:53','2018-12-14 13:31:53'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที)

แบบสอบถามเพื่อแสดงระเบียนทั้งหมดจากตาราง

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

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

<ก่อนหน้า>+---------------------+---------------------+| FirstTimestamp | SecondTimestamp |+---------------------+---------------------+| 2012-12-12 13:16:55 | 2012-12-12 13:13:55 || 2014-10-11 12:15:50 | 2014-10-11 12:13:50 || 2018-12-14 13:30:53 | 2018-12-14 13:27:53 || 2018-12-14 13:26:53 | 2018-12-14 13:31:53 |+---------------------------+---------------- -----+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้คือการใช้ฟังก์ชัน ABS() แบบสอบถามมีดังนี้ −

mysql> SELECT ABS(UNIX_TIMESTAMP(FirstTimestamp) - UNIX_TIMESTAMP(SecondTimestamp)) เป็นวินาทีจาก DifferenceInSeconds;

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

<ก่อนหน้า>+---------+| วินาที |+---------+| 180 || 120 || 180 || 300 |+---------+4 แถวในชุด (0.00 วินาที)

หมายเหตุ - หากคุณจะไม่ใช้ ABS() ดังนั้น -300 วินาทีจะเป็นเอาต์พุตด้านบน