CommencerCommencer gratuitement

Arithmétique INTERVAL

Si vous dirigiez un véritable magasin de location de DVD, il vous arriverait parfois de devoir déterminer quels films étaient actuellement loués par des clients. Dans l'exercice précédent, nous avons constaté que certains enregistrements dans les résultats avaient une valeur de NULL pour return_date. En effet, le loyer n'avait pas encore été réglé.

Chaque location dans la table film est associée à une colonne rental_duration qui représente le nombre de jours pendant lesquels un DVD peut être loué par un client avant d'être considéré comme en retard. Dans cet exemple, vous allez exclure les films dont la valeur est NULL pour return_date et convertir la valeur rental_duration en type INTERVAL. Voici un rappel d'une méthode permettant d'effectuer cette conversion.

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

Cet exercice fait partie du cours

Fonctions permettant de manipuler les données dans PostgreSQL

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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