CommencerCommencer gratuitement

INTERVAL arithmétique

Si vous dirigez un vrai magasin de location DVD, il vous faudra parfois déterminer quels titres de films sont en cours de location auprès des clients. Dans l'exercice précédent, nous avons vu que certains enregistrements dans les résultats avaient une valeur NULL pour le return_date. Cela s'explique par le fait que la location n'a pas encore été réglée.

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

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

Cet exercice fait partie du cours

Fonctions pour 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.
  • Exclure les locations d'une valeur de 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