Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh mengira jumlah jam bekerja dalam seminggu dari jadual MySQL dengan nilai masa?

Bagaimanakah saya boleh mengira jumlah jam bekerja dalam seminggu dari jadual MySQL dengan nilai masa?

DDD
DDDasal
2024-11-06 22:13:02552semak imbas

How can I calculate the total hours worked in a week from a MySQL table with time values?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn