Mengira Perbezaan Masa dalam MySQL
Anda mempunyai jadual MySQL dengan nilai tarikh-masa dalam format tertentu dan ingin mengira perbezaan antara mereka, kemudian jumlahkan keputusan untuk mendapatkan jumlah jam untuk tempoh tertentu. Mari kita terokai cara untuk mencapai ini.
Menggunakan TIME_TO_SEC() dan SEC_TO_TIME()
Fungsi TIME_TO_SEC() menukar nilai masa dalam format "HH:MM: SS" kepada bilangan saat yang diwakilinya. Untuk mengira perbezaan antara dua nilai masa, formula berikut boleh digunakan:
TIME_DIFFERENCE = TIME_TO_SEC(END_TIME) - TIME_TO_SEC(START_TIME)
Walau bagaimanapun, memandangkan output yang diingini adalah dalam jam, kita perlu menukar perbezaan masa dari saat kepada jam. Ini boleh dilakukan menggunakan fungsi SEC_TO_TIME():
TOTAL_HOURS = SEC_TO_TIME(TIME_DIFFERENCE)
Mengira Jumlah Jam
Untuk mencari jumlah jam bagi tempoh tertentu, seperti seminggu , pertanyaan berikut boleh digunakan:
SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( `time` ) ) ) AS total_time FROM time_table;
Dalam pertanyaan ini, fungsi TIME_TO_SEC() digunakan pada setiap nilai masa dalam lajur masa. Hasilnya kemudian dijumlahkan menggunakan fungsi SUM(). Akhir sekali, fungsi SEC_TO_TIME() digunakan untuk menukar jumlah saat kepada jam, memberikan output yang diingini.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengira jumlah jam bekerja dalam seminggu dari jadual MySQL dengan nilai masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!