Aritmetica con INTERVAL
Se gestissi un vero negozio di DVD Rental, a volte dovresti capire quali titoli sono attualmente in noleggio presso i clienti. Nell’esercizio precedente abbiamo visto che alcuni record nei risultati avevano NULL in return_date. Questo perché il noleggio era ancora in corso.
Ogni noleggio nella tabella film ha una colonna rental_duration che rappresenta il numero di giorni per cui un cliente può tenere un DVD prima che sia considerato in ritardo. In questo esempio, escluderai i film che hanno NULL in return_date e convertirai anche rental_duration nel tipo INTERVAL. Ecco un promemoria di un metodo per eseguire questa conversione.
SELECT INTERVAL '1' day * timestamp '2019-04-10 12:34:56'
Questo esercizio fa parte del corso
Funzioni per manipolare i dati in PostgreSQL
Istruzioni dell'esercizio
- Converti
rental_durationmoltiplicandolo per unINTERVALdi 1 giorno - Sottrai
rental_datedareturn_dateper calcolare il numero didays_rented. - Escludi i noleggi con valore
NULLinreturn_date.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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;