CommencezCommencez gratuitement

Arithmétique avec INTERVAL

Si vous gérez un vrai club vidéo de location de DVD, vous devrez parfois déterminer quels titres sont actuellement loués par des clients. Dans l'exercice précédent, nous avons vu que certaines lignes des résultats avaient une valeur NULL pour return_date. C'est parce que la location est toujours en cours.

Chaque location dans la table film possède une colonne rental_duration qui représente le nombre de jours pendant lesquels un client peut louer un DVD avant qu'il ne soit considéré en retard. Dans cet exemple, vous allez exclure les films dont return_date est NULL et convertir aussi rental_duration en type INTERVAL. Voici un rappel d'une méthode pour effectuer cette conversion.

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

Cette activité fait partie du cours

Fonctions pour manipuler les données dans PostgreSQL

Voir le cours

Instructions de l’exercice

  • Convertissez rental_duration en le multipliant par un INTERVAL de 1 jour.
  • Soustrayez rental_date de return_date pour calculer le nombre de days_rented.
  • Excluez les locations dont return_date est NULL.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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;
Modifier et exécuter le code