🧚 Dengar! Beekeeper Studio adalah GUI database yang cepat, modern, dan open source Unduh
28 Agustus 2024 Oleh Matthew Rathbone

‘Interval’ di PostgreSQL merepresentasikan durasi waktu. Interval bisa berasal dari hasil pengurangan dua nilai TIMESTAMP atau didefinisikan secara eksplisit dengan keyword INTERVAL.

Berikut contohnya:

SELECT INTERVAL '2 days 3 hours 40 minutes' AS example_interval;

Output yang Diharapkan:

example_interval
-------------------
2 days 03:40:00

Mengekstrak Hari, Jam, dan Menit

Mengekstrak Hari

Untuk mengekstrak total jumlah hari dari sebuah interval:

SELECT EXTRACT(DAY FROM INTERVAL '5 days 4 hours 30 minutes') AS total_days;

Output yang Diharapkan:

total_days
------------
5

Mengekstrak Jam

Saat mengekstrak jam, fungsi EXTRACT hanya mengembalikan komponen jam dari interval, bukan total jam termasuk hari. Contohnya:

SELECT EXTRACT(HOUR FROM INTERVAL '2 days 4 hours 30 minutes') AS hours_component;

Output yang Diharapkan:

hours_component
-----------------
4

Untuk mendapatkan total jam termasuk hari, Anda perlu melakukan sedikit perhitungan aritmetika:

SELECT EXTRACT(DAY FROM INTERVAL '2 days 4 hours 30 minutes') * 24 +
       EXTRACT(HOUR FROM INTERVAL '2 days 4 hours 30 minutes') AS total_hours;

Output yang Diharapkan:

total_hours
------------
52

Mengekstrak Menit

Sama seperti jam, mengekstrak menit hanya mengembalikan bagian menit dari interval:

SELECT EXTRACT(MINUTE FROM INTERVAL '2 days 4 hours 30 minutes') AS minutes_component;

Output yang Diharapkan:

minutes_component
-------------------
30

Untuk mendapatkan total menit dari interval, Anda bisa menghitungnya seperti ini:

SELECT (EXTRACT(DAY FROM INTERVAL '2 days 4 hours 30 minutes') * 24 * 60) +
       (EXTRACT(HOUR FROM INTERVAL '2 days 4 hours 30 minutes') * 60) +
       EXTRACT(MINUTE FROM INTERVAL '2 days 4 hours 30 minutes') AS total_minutes;

Output yang Diharapkan:

total_minutes
---------------
3150

Contoh Praktis

Mari kita lihat contoh praktis menggunakan sebuah tabel. Misalkan kita punya tabel bernama events yang menyimpan timestamp awal dan akhir untuk berbagai event:

CREATE TABLE events (
    event_id SERIAL PRIMARY KEY,
    start_time TIMESTAMP,
    end_time TIMESTAMP
);

INSERT INTO events (start_time, end_time)
VALUES 
    ('2024-08-01 08:00:00', '2024-08-03 12:30:00'),
    ('2024-08-05 09:15:00', '2024-08-05 18:45:00');

Kita bisa menghitung interval untuk setiap event lalu mengekstrak total hari, jam, dan menitnya:

SELECT 
    event_id,
    end_time - start_time AS duration,
    EXTRACT(DAY FROM end_time - start_time) AS total_days,
    (EXTRACT(DAY FROM end_time - start_time) * 24 +
     EXTRACT(HOUR FROM end_time - start_time)) AS total_hours,
    (EXTRACT(DAY FROM end_time - start_time) * 24 * 60 +
     EXTRACT(HOUR FROM end_time - start_time) * 60 +
     EXTRACT(MINUTE FROM end_time - start_time)) AS total_minutes
FROM events;

Output yang Diharapkan:

event_id |   duration    | total_days | total_hours | total_minutes
---------+---------------+------------+-------------+--------------
       1 | 2 days 04:30  |          2 |          52 |          3150
       2 | 09:30:00      |          0 |           9 |           570

Kesimpulan

Mengekstrak hari, jam, atau menit dari interval di PostgreSQL cukup mudah dengan fungsi EXTRACT. Untuk mendapatkan nilai total, Anda perlu menggabungkan EXTRACT dengan operasi aritmetika. Teknik-teknik ini sangat berguna untuk menganalisis data berbasis waktu di aplikasi Anda.

Artikel lain yang mungkin Anda sukai:

Beekeeper Studio Adalah GUI Database Gratis & Open Source

Tool query & editor SQL terbaik yang pernah saya pakai. Semua yang saya butuhkan untuk mengelola database ada di sini. - ⭐⭐⭐⭐⭐ Mit

Beekeeper Studio cepat, intuitif, dan mudah digunakan. Beekeeper mendukung banyak sekali database, dan berjalan mulus di Windows, Mac, dan Linux.

Versi Linux Beekeeper punya fitur 100% lengkap, tanpa potong kompas, tanpa kompromi fitur.

Apa Kata Pengguna Tentang Beekeeper Studio

★★★★★
"Beekeeper Studio benar-benar menggantikan workflow SQL lama saya. Cepat, intuitif, dan membuat kerja dengan database jadi menyenangkan lagi."
— Alex K., Database Developer
★★★★★
"Saya sudah mencoba banyak GUI database, tapi Beekeeper punya keseimbangan sempurna antara fitur dan kesederhanaan. Langsung jalan."
— Sarah M., Full Stack Engineer

Siap Meningkatkan Workflow SQL Anda?

download Unduh Gratis