Date Diff di Oracle

Home Berita Date Diff di Oracle
calendar-date

Baru saja dibuat penasaran oleh seorang rekan kantor yang tidak bisa mencari selisih waktu melalui query di Oracle. Hmmm apa mungkin oracle tidak punya fungsi date_diff? Setelah melakukan investigasi menyeluruh ke halaman paman google, ternyata solusi yang ditawarkan teramat banyak namun tidak satupun yang dapat menjawab pertanyaan secara gamblang. Setelah membaca jawaban di sini, terbesit pemikiran untuk mengolahnya lebih lanjut.

Kira-kira begini querynya:

SELECT 
  t.*, 
  FLOOR(tanggal_b - tanggal_a) AS hari,
  FLOOR(MOD(((tanggal_b - tanggal_a) * 24),24)) AS jam,
  FLOOR(MOD(((tanggal_b - tanggal_a) * 24 * 60),60)) AS menit,
  FLOOR(MOD(((tanggal_b - tanggal_a) * 24 * 60 * 60),60)) AS detik,
  TO_CHAR(TO_DATE('00:00:00','HH24:MI:SS') + (tanggal_b - tanggal_a), 'HH24:MI:SS') AS timediff
FROM (
  SELECT 
    to_date('04/12/2013 15:00:00','DD/MM/YYYY HH24:MI:SS') AS tanggal_a,
    SYSDATE AS tanggal_b
  FROM DUAL
) t;

Semoga membantu 🙂

Leave your comment to Cancel Reply

Your email address will not be published.