Cara Menghitung Selisih Waktu Timestamp di PostgreSQL

Halooo semuanya, pada postingan kali ini kita akan coba menghitung selisih antara dua waktu dengan tipe data timestamp di PostgreSQL.

Pada kasus ini, kita akan coba menghitung lama waktu dari sebuah pembangunan gedung.

Kita mempunyai sebuah tabel gedung dengan kolom yang berisi nama_gedung (varchar), waktu_mulai (timestamp) dan waktu_berakhir (timestamp).

Berikut isi data dari tabel tersebut

nama_gedungwaktu_mulaiwaktu_berakhir
Gedung A2021-01-01 09:30:002022-01-20 10:25:00
Gedung B2022-01-20 11:00:002022-02-20 12:30:00
Gedung C2022-01-20 09:25:002022-01-20 15:30:00

Cara 1 : Menampilkan dalam Hari, Jam, Menit dan Detik

Pada cara pertama kita dapat menampilkan selisih dari dua waktu menjadi hari, jam, menit dan detik

SELECT 
    *
    waktu_berakhir - waktu_mulai AS selisih
FROM gedung;

Hasilnya menjadi seperti berikut :

nama_gedungwaktu_mulaiwaktu_berakhirselisih
Gedung A2021-01-01 09:30:002022-01-20 10:25:0031 days 01:30:00
Gedung B2022-01-20 11:00:002022-02-20 12:30:0006:05:00
Gedung C2022-01-20 09:25:002022-01-20 15:30:00384 days 00:55:00

Cara 2 : Menampilkan dalam Tahun, Bulan, Hari, Jam, Menit dan Detik

Pada cara kedua kita dapat menampilkannya hingga menampilkan tahun dengan menggunakan fungsi AGE().

SELECT 
    *,
    AGE(waktu_berakhir,waktu_mulai) AS selisih
FROM gedung;

Hasilnya :

nama_gedungwaktu_mulaiwaktu_berakhirselisih
Gedung A2021-01-01 09:30:002022-01-20 10:25:001 mon 01:30:00
Gedung B2022-01-20 11:00:002022-02-20 12:30:0006:05:00
Gedung C2022-01-20 09:25:002022-01-20 15:30:001 year 19 days 00:55:00

Cara 3 : Menampilkan dalam Detik

Pada cara ini kita akan menampilkan selisihnya dalam satuan waktu detik

SELECT
    *, 
    EXTRACT(EPOCH FROM (waktu_berakhir-waktu_mulai)) AS selisih 
FROM gedung;

Hasilnya :

nama_gedungwaktu_mulaiwaktu_berakhirselisih
Gedung A2021-01-01 09:30:002022-01-20 10:25:002683800
Gedung B2022-01-20 11:00:002022-02-20 12:30:0021900
Gedung C2022-01-20 09:25:002022-01-20 15:30:0033180900

Oke sekian untuk postingan kali ini, semoga bermanfaat yaaa 🙂

About the Author: amoe

You May Also Like

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *