Namun bagaimana jika ingin menjumlahkan angka dalam betuk waktu atau TIME? Misalnya kita ingin menjumlahkan total keterlambatan atau total lama waktu kerja dalam 1 bulan.
Untuk mengetahui jumlah waktu maka ada 2 perintah query yang bisa kita gunakan. Kedua query tersebut tetap akan menggunakan perintah SUM untuk menjumlahkan, namun ada tambahan fungsi lain yang sudah disediakan oleh Mysql. Fungsi tersebut adalah:
- TIME_TO_SEC dan
- SEC_TO_TIME
Fungsi TIME_TO_SEC
SELECT TIME_TO_SEC('01:00:00')
Dari query tersebut akan dihasilkan nilai berupa angka 3600 dimana angka tersebut merupakan jumlah detik dalam 1 jam. 1 jam=60 menit=3600 detik.
Fungsi SEC_TO_TIME ini dapat digunakan jika kita ingin mengubah waktu atau CONVERT TIME dari detik atau second ke dalam satuan jam atau hour. Misalkan kita memiliki waktu 3600 detik, maka untuk mengubah bentuk detik atau second tersebut ke dalam bentuk jam kita dapat menggunakan query sbb:
SELECT SEC_TO_TIME(3600)
Total Waktu
Selanjutnya bagaimana untuk menghitung total waktu dari beberapa record. Misalnya kita memiliki record sebagai berikut:
No
|
Tanggal
|
Telat
|
1 | 2018-05-07 | 00:01:00 |
2 | 2018-05-08 | 01:00:00 |
3 | 2018-05-09 | 00:30:00 |
4 | 2018-05-10 | 01:30:00 |
5 | 2018-05-11 | 00:30:10 |
Dari data di atas kita ingin menghitung berapa total keterlambatan. Maka kita bisa menggunakan perintah SUM dengan menambahkan fungsi yang sudah dijelaskan di atas.
Jika kita ingin mengetahui berapa detik total keterlambatan maka dapat digunakan query sbb;
SELECT SUM(TIME_TO_SEC(nama_field)) as Total FROM nama_tabel
SELECT SUM(TIME_TO_SEC(telat)) as Total FROM nama_tabel
Dari query di atas maka akan dihasilkan total detik keterlambatan, dimana akan dihasilkan angka 12670 dalam satuan detik.
Namun jika kita ingin menampilkan dalam satuan jam maka dapat digunakan fungsi SEC_TO_TIME dimana kita akan mengkonversi nilai detik ke dalam bentuk jam. Sehingga langkah awal kita tetap akan menghitung total detiknya terlebih dahulu baru kemudian kita convert ke dalam bentuk jam, dengan query sbb:
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(nama_field))) as Total FROM nama_tabel
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(telat))) as Total FROM nama_tabel
Dari query di atas maka akan dihasilkan total detik keterlambatan yang sudah di konvert ke dalam bentuk jam, dimana akan dihasilkan 03:31:10.
Demikian semoga bermanfaat.
Read more ...