IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Converti rental_duration moltiplicandolo per un INTERVAL di 1 giorno
  • Sottrai rental_date da return_date per calcolare il numero di days_rented.
  • Escludi i noleggi con valore NULL in return_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;
Modifica ed esegui il codice