Kom igångKom igång gratis

INTERVAL-aritmetik

Om du drev en riktig DVD-uthyrningsbutik skulle det ibland vara nödvändigt att ta reda på vilka filmtitlar som för tillfället är uthyrda till kunder. I föregående övning såg vi att vissa poster i resultatet hade värdet NULL för return_date. Det beror på att uthyrningen fortfarande var aktiv.

Varje uthyrning i tabellen film har en tillhörande kolumn, rental_duration, som anger hur många dagar en DVD kan hyras av en kund innan det räknas som försenat. I den här övningen ska du utesluta filmer där return_date är NULL och konvertera rental_duration till typen INTERVAL. Här är en påminnelse om en metod för att utföra den här konverteringen.

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

Den här övningen är en del av kursen

Funktioner för datamanipulering i PostgreSQL

Visa kurs

Övningsinstruktioner

  • Konvertera rental_duration genom att multiplicera det med ett INTERVAL på 1 dag.
  • Subtrahera rental_date från return_date för att beräkna antalet days_rented.
  • Uteslut uthyrningar där return_date har värdet NULL.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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;
Redigera och kör kod