Mencari Selisih Waktu dan Tanggal dengan SQL
June 25th, 2008 | by rosihanari |
Cetak Artikel Ini
Anda bingung untuk mencari selisih waktu dan tanggal dalam aplikasi yang Anda buat? Jangan khawatir, dengan statement SQL, Anda dapat mencarinya dengan mudah.
Apabila Anda familiar dengan PHP, maka setahu saya tidak ada function dalam PHP yang dapat digunakan untuk mencari selisih waktu dan tanggal secara instan, atau tinggal pakai. Namun Anda terlebih dahulu membuatnya sendiri, dan itu tentu saja butuh waktu banyak.
Nah… artikel ini akan membahas bagaimana mencari selisih waktu dan tanggal dengan menggunakan statement SQL.
Untuk mencari selisih tanggal (dalam satuan hari) dengan menggunakan SQL, sintaksnya adalah sebagai berikut:
SELECT datediff('tgl1', 'tgl2');
dengan tgl1 dan tgl2 adalah tanggal-tanggal yang akan dicari selisihnya. Adapun format tanggal nya adalah th-bln-tgl.
Apabila tgl1 < tgl2, maka akan diperoleh selisih hari bernilai negatif. Sedangkan apabila tgl1 > tgl2, maka akan diperoleh selisih hari yang bernilai positif.
Sebagai contoh, akan dicari selisih hari antara tgl 01/01/2008 dan 10/01/2008. Berikut ini adalah statement SQL nya.
SELECT datediff('2008-01-10','2008-01-01');
Dari perintah di atas akan diperoleh hasil 9 (artinya 9 hari)
Bagaimana dengan selisih waktu? Untuk mencari selisih dari 2 buah waktu, sintaks SQL nya adalah:
SELECT timediff('time1', 'time2');
Format time1 dan time2 dapat berupa waktu dalam jam (jam:menit:detik) atau tanggal saja (th-bln-tgl) atau bahkan gabungan jam dan tanggal (th-bln-tgl jam:menit:detik).
Perintah SQL ini akan menghasilkan output dalam format jam (jam:menit:detik).
Sebagai contoh akan dicari selisih waktu antara jam 13:00 dan 15:01. Perintah SQL nya
SELECT timediff('13:00', '15:01');
Perintah ini akan menghasilkan 2:01:00 (2 jam, 1 menit, 0 detik).
Contoh lain akan dicari selisih waktu antara tanggal 01/01/2008 jam 10:01 dengan 02/01/2008 jam 10:02.
SELECT timediff('2008-01-02 10:02', '2008-01-01 10:01');
Perintah di atas akan menghasilkan 24:01:00 (24 jam, 1 menit, 0 detik).
Gampang bukan ??
Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?
Beberapa artikel terkait
- Script PHP untuk Mencari Selisih Waktu dan Tanggal
- Mencari Selisih Hari dari Dua Buah Tanggal dengan PHP (Tanpa Query SQL)
- Membuat Countdown Menuju Tanggal dan Waktu Tertentu Dengan AJAX
- Script PHP Mencari Usia Seseorang
- Mengetahui Nama Hari pada Tanggal Tertentu dengan PHP
- Menentukan Nama Hari Pasaran Jawa Dari Tanggal Tertentu dengan PHP
- Membuat Script PHP untuk Prediksi Tanggal Kelahiran (HPL)
- Perintah SQL untuk Mencari Siswa yang Belum Bayar SPP (studi kasus)
- Menentukan Tanggal n Hari Berikutnya dan n Hari Sebelumnya Dari Tanggal Hari Ini
- Mengetahui Kinerja Script PHP Berdasarkan Waktu Eksekusi
Share this article on:
Kata kunci:





[...] Anda membaca artikel saya tentang mencari selisih waktu dan tanggal dengan SQL? Kalau belum, sebaiknya baca artikel tersebut terlebih dahulu karena artikel ini terkait dengan [...]
Pak rosihanari.
Bagaimana jika format waktunya memakai AM dan PM.
Thanks.
to mgman: mmm… sepertinya untuk time formatnya hanya dalam bentuk hh:mm:ss saja mas. Untuk jamnya mulai dari 00 – 23.
pak gimana caranya menambah hari, misalnya tanggal 17 oktober 2009 ditambah 10 hari jadi tanggal 27 oktober 2009
Terimakasih mas, berguna sekali buat saya.
asslm….
p` bagaimana caranya kalo mw mencari selisih 2 waktu dengan menggunakan delphi ???
kalo bisa dgn langkah2nya….
@echie: saya dah lama gak pegang delphi mbak… lupa deh jadinya…
pak gimana lok mencari selisih tgl dengan mengabaikan satu atau lebih tgl yang ada diantara tgl yang ingin dicari selisihnya…
dan tgl yang diabaikan tersbut diambil dari tabel hari libur.
mhn bantuanya pak
trims..
@fajri: kalo hari libur yang dihitung hanya minggu, bisa mas. Nanti anda cari dulu selisih seluruh hari antara 2 tanggal, lalu kurangi jumlah hari minggunya dengan cara seperti yang saya jelaskan di http://blog.rosihanari.net/menghitung-jumlah-hari-minggu-antara-dua-tanggal. Tapi kalo hari liburnya termasuk hari besar agama atau yang lain, agak repot karena anda musti bikin dulu list tanggal libur nasionalnya.
Pak kalau bentuk absen bawaan dari finger print (sidik jari) tabular ke bawah gimana querinya pak?? mohon pencerahannya
contoh :
| fingerid | datetime | functionkey |
0001 2010-05-12 23:03:00 0
0001 2010-05-13 07:03:00 1
0002 2010-05-12 07:03:00 0
0002 2010-05-12 15:03:00 1
cat. 0= in, 1=out
Salam
ANton
@anton: query untuk mencari apa?
untuk mencari selisih waktu pak…
ok banget tu mas sintaksnya, ma’kasih ya…..
mas, . . . mau tanya dong . . .
kalau menjumlahkan dalam satu kolom , gimana sintaksnya ya…?
misal, saya mau menjumlahkan kolom jam, nama b
————————-
| id | nama | jam |
————————-
| 1 | a | 10:01 |
| 2 | b | 05:20 |
| 3 | a | 11:01 |
| 4 | b | 09:11 |
| 5 | b | 03:15 |
| 6 | a | 03:15 |
| 7 | b | 10:15 |
————————-
ma’kasih banyak,
syahrul