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

รับความแตกต่างของเวลาและแปลงเป็นชั่วโมงใน MySQL หรือไม่


คุณทำได้โดยใช้วิธี timestampdiff() จาก MySQL ไวยากรณ์มีดังนี้ −

ไวยากรณ์

เลือก ABS(TIMESTAMPDIFF(HOUR,yourColumnName1,yourColumnName2)) asanyVariableName จาก yourTableName;

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

mysql> สร้างตาราง DifferenceInHours -> ( -> StartDateTime datetime, -> EndDateTime datetime -> );Query OK, 0 แถวได้รับผลกระทบ (0.59 วินาที)

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

mysql> แทรกลงในค่า DifferenceInHours ('2018-12-20 10:00:00', '2018-12-19 12:00:00'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที)mysql> แทรก เป็นค่า DifferenceInHours ('2018-12-20 11:00:00', '2018-12-19 11:00:00'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DifferenceInHours ('2018 -12-20 10:30:00 ', '2018-12-19 11:00:00');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที)

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

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

ผลลัพธ์

<ก่อนหน้า>+---------------------+---------------------+| StartDateTime | EndDateTime |+---------------------+---------------------+| 2018-12-20 10:00:00 | 2018-12-19 12:00:00 || 2018-12-20 11:00:00 | 2018-12-19 11:00:00 || 2018-12-20 10:30:00 | 2018-12-19 11:00:00 |+---------------------------+---------------- -----+3 แถวในชุด (0.00 วินาที)

นี่คือข้อความค้นหาที่ได้รับความแตกต่างของเวลาเป็นชั่วโมง แบบสอบถามมีดังนี้ −

mysql> SELECT ABS(TIMESTAMPDIFF(HOUR,StartDateTime,EndDateTime)) เป็น Hour fromDifferenceInHours;

ต่อไปนี้เป็นผลลัพธ์ที่แสดงความแตกต่างของเวลาเป็นชั่วโมง -

<ก่อนหน้า>+------+| ชั่วโมง |+------+| 22 || 24 || 23 |+------+3 แถวในชุด (0.00 วินาที)