Aritmetika INTERVAL
Jika Anda menjalankan toko Sewa DVD yang sesungguhnya, akan ada kalanya Anda perlu mengetahui judul film apa saja yang saat ini masih dipinjam pelanggan. Pada latihan sebelumnya, kita melihat bahwa beberapa rekaman dalam hasil memiliki nilai NULL untuk return_date. Ini karena sewanya masih belum dikembalikan.
Setiap sewa di tabel film memiliki kolom rental_duration yang menunjukkan jumlah hari sebuah DVD dapat dipinjam pelanggan sebelum dianggap terlambat. Dalam contoh ini, Anda akan mengecualikan film yang memiliki nilai NULL untuk return_date dan juga mengonversi rental_duration ke tipe INTERVAL. Berikut pengingat salah satu metode untuk melakukan konversi ini.
SELECT INTERVAL '1' day * timestamp '2019-04-10 12:34:56'
Latihan ini adalah bagian dari kursus
Fungsi untuk Memanipulasi Data di PostgreSQL
Petunjuk latihan
- Konversikan
rental_durationdengan mengalikan nilai tersebut denganINTERVAL1 hari - Kurangkan
rental_datedarireturn_dateuntuk menghitung jumlahdays_rented. - Kecualikan sewa dengan
return_datebernilaiNULL.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
SELECT
f.title,
-- Convert the rental_duration to an interval
___ '1' ___ * ___.___,
-- Calculate the days rented as we did previously
r.return_date - ___.___ AS days_rented
FROM film AS f
INNER JOIN inventory AS i ON f.film_id = i.film_id
INNER JOIN rental AS r ON i.inventory_id = r.inventory_id
-- Filter the query to exclude outstanding rentals
WHERE r.return_date ___ ___ ___
ORDER BY f.title;