BaşlayınÜcretsiz Başlayın

INTERVAL aritmetiği

Gerçek bir DVD Kiralama mağazası işletiyor olsaydın, müşterilerde şu anda kirada olan film adlarını belirlemen gereken anlar olurdu. Önceki egzersizde, sonuçlardaki bazı kayıtların return_date için NULL değere sahip olduğunu gördük. Bunun nedeni, kiralamanın hâlâ devam ediyor olmasıydı.

film tablosundaki her kiralamanın, bir DVD'nin geç sayılmadan önce bir müşteri tarafından kaç günlüğüne kiralanabileceğini ifade eden rental_duration adlı bir sütunu vardır. Bu örnekte, return_date değeri NULL olan filmleri hariç tutacak ve ayrıca rental_duration değerini INTERVAL türüne dönüştüreceksin. Bu dönüşümü gerçekleştirmek için bir yöntemi hatırlatıyoruz.

SELECT INTERVAL '1' day * timestamp '2019-04-10 12:34:56'

Bu egzersiz

PostgreSQL'de Veriyi İşlemek için Fonksiyonlar

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • rental_duration değerini 1 günlük bir INTERVAL ile çarparak dönüştür.
  • Kiralanan gün sayısını (days_rented) hesaplamak için return_date değerinden rental_date değerini çıkar.
  • return_date değeri NULL olan kiralamaları hariç tut.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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;
Kodu Düzenle ve Çalıştır