Aritmética INTERVAL
Si dirigieras una tienda de alquiler de DVD real, en ocasiones tendrías que determinar los títulos alquilables. En el ejercicio anterior, vimos que algunos de los registros de los resultados tenían un valor NULL
para return_date
. Esto se debe a que el alquiler seguía pendiente.
Cada alquiler de la tabla film
tiene una columna rental_duration
asociada que representa el número de días que un cliente puede alquilar un DVD antes de que se considere retrasado. En este ejemplo, excluirás películas con un valor NULL
para return_date
y también convertirás rental_duration
en un tipo INTERVAL
. Aquí tienes un recordatorio de un método para realizar esta conversión.
SELECT INTERVAL '1' day * timestamp '2019-04-10 12:34:56'
Este ejercicio forma parte del curso
Funciones para manipular datos en PostgreSQL
Instrucciones de ejercicio
- Convierte
rental_duration
multiplicándolo porINTERVAL
de 1 día. - Resta
rental_date
areturn_date
para calcular el número dedays_rented
. - Excluye los alquileres con valor
NULL
parareturn_date
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
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;