Menghitung selisih waktu di postgresql

Menghitung selisih waktu di postgresql

  • Cari disini...
  • Browse

    • Katalog Kelas

      Ikuti materi yang kamu butuhkan

    • Roadmap

      Belajar online dengan terarah

    • Bootcamp

      Codepolitan x Catamyst

  • Explore

    • Tutorial & Artikel

      Temukan Artikel menarik

    • Podcast

      Podcast seputar pemrograman

    • Webinar

      Ikuti Berbagai Webinar

    • Event

      Temukan Event menarik

    • Beasiswa

      Program Beasiswa

    • Discord

      Komunitas Discord

    • Forum

      Diskusi antar Programmer

    • Leaderboard

      Ranking siswa Codepolitan

  • Partnership

    • For Company

      Solusi tepat untuk perusahaan

    • For School

      Kerjasama untuk sekolah

    • For Campus

      Kerjasama untuk kampus

    • For Mentor

      Peluang penghasilan untuk mentor

  • Career

LoginRegister

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 ??

Bagikan artikel ini jika bermanfaat !


SQL Server menyediakan Fungsi Tanggal untuk memanipulasi data jenis Datetime dengan menggunakan Operator Aritmatika.Sehingga kita lebih mudah dalam menghitung dan mencari selisih dari dua tanggal / DateTime. Misalnya kita ingin mencari berapa selisih antara tanggal ‘02-02-2012‘ dan ‘20-02-2012‘ maka hasilnya adalah ‘18 Hari .’

Nah, di SQL kita dipermudah dengan adanya fungsi tanggal tersebut.Adapun query yang digunakan untuk mencari selisih dari 2 datetime tersebut ialah DateDiff. DateDiff berfungsi untuk mencari selisih dua buah datetime.DateDiff bukan hanya digunakan untuk mencari selisih Hari tetapi juga bisa mencari selisih Bulan,dan Tahun.

Sintaks : DateDiff ( DatePart, Date1, Date2)

DatePart yaitu Interval DateTime yang kita ingin cari, misalnya Date, Month, Year

Pembahasan :

create table Transaksi (

Nama varchar (15), CheckIn datetime, CheckOut datetime

)

insert into Transaksi values (‘Budi’,’11/10/11′,’11/12/11′)
insert into Transaksi values (‘Rina’,’10/12/11′,’10/20/11′)
insert into Transaksi values (‘Danu’,’12/25/11′,’01/03/12′)
insert into Transaksi values (‘Satrya’,’01/10/11′,’01/15/11′)
insert into Transaksi values (‘Erni’,’02/05/11′,’02/08/11′)

Select * From Transaksi

Maka hasilnya akan seperti dibawah ini :

Menghitung selisih waktu di postgresql

Lalu, untuk mencari berapa Hari Customer menginap kita gunakan fungsi DateDiff yang baru saja kita bahas tadi.

Select Customer, CheckIn, CheckOut, DateDiff (Day,CheckIn,CheckOut) as ‘Total Hari’
from Transaksi

Maka akan tampil seperti berikut :

Menghitung selisih waktu di postgresql

Sekian 🙂