Cara menghitung Selisih jam dan Total Jam

Beberapa hari cari cara biar dapat menjumlah total jam di mysql, alhamdulilah dapat tutor dari mas dendi, menjelasannya cukup lengkap dan sesuai dengan kebutuhan.

  • Menghitung Keterlambatan Hari 

Menghitung keterlambatan hari Biasanya di implemetasikan di persoalan-persoalan yang berhubungan dengan peminjaman, dan absensi pegawai

SELECT id_pegawai, id_buku, DATEDIFF(NOW(),tgl_batas_pinjam) AS keterlambatan FROM peminjaman;

DATEDIFF = Fungsi untuk menghitung selisih tanggal

  • Menghitung Usia

Menghitung umur setiap personal.


  1. Penjelasan Fungsi MySQL
    1. NOW = Fungsi untuk menampilkan tanggal sekarang
    2. YEAR = Fungsi untuk mengambil tahun dari sebuah tanggal
    3. RIGTH = Fungsi untuk mengambil karakter dari sebelah kanan
  • Menghitung Jam Kerja

Menghitung jam kerja dapat di manfaatkan untuk menghitung jam kerja karyawan di hari yang berjalan atau untuk menghitung akumulasi jam kerja yang telah berlalu, pokoknya keren deh.

Menampilkan Jumlah Jam Kerja dihari berjalan

SELECT id_pegawai, SEC_TO_TIME(SUM((TIME_TO_SEC(TIMEDIFF(jam_keluar,jam_masuk))))) as jam_kerja FROM absen GROUP BY id_pegawai; 

Menampilkan Jumlah Total Jam Kerja karyawan

SELECT id_pegawai, SEC_TO_TIME(SUM((TIME_TO_SEC(TIMEDIFF(jam_keluar,jam_masuk))))) as jam_kerja FROM absen GROUP BY id_pegawai;

Penjelasan Fungsi MySQL

  • TIMEDIFF = Fungsi untuk membandingkan jam
  • TIME_TO_SEC = Fungsi untuk merubah jam menjadi detik
  • SUM = FUNGSI untuk menjumlahkan
  • SEC_TO_TIME = Fungsi untuk merubah detik menjadi jam

Menjumlahkan jam perhari

SELECT id_pegawai,tanggal, SEC_TO_TIME(SUM((TIME_TO_SEC(TIMEDIFF(jam_keluar,jam_masuk))))) as jam_kerja FROM absen group by id_pegawai,tanggal

Menampilkan sesuai hari sekarang
select * from where date_format(tanggal,'%d-m%-%Y') = date_format(now(),'%d-m%-%Y');

Menampilan Tanggal Ultah by Bulan Tanggal Hari

select date_format('2011-10-23','%W %d %M %Y') as tgl_lahir;
+-----------------------------------------+
| tgl_lahir |
+-----------------------------------------+
| Sunday 23 October 2011 |
+-----------------------------------------+

Kalau diimplementasikan dalam sebuah tabel yang berisikan profile member akan seperti ini.

select if(date_format(now(),'%Y-%m-%d') = date_format(tgl_lahir,'%Y-%m-%d'), date_format('2011-10-23','%W %d %M %Y'),null);