Aan de slagGa gratis aan de slag

INTERVAL-rekenkunde

Als je een echte DVD-verhuurwinkel zou runnen, zijn er momenten waarop je moet bepalen welke filmtitels op dit moment bij klanten zijn verhuurd. In de vorige oefening zagen we dat sommige records in de resultaten een NULL-waarde hadden voor return_date. Dat komt omdat de verhuur nog openstond.

Elke verhuur in de tabel film heeft een bijbehorende kolom rental_duration die het aantal dagen weergeeft dat een DVD door een klant gehuurd kan worden voordat deze te laat is. In dit voorbeeld sluit je films uit die een NULL-waarde hebben voor return_date en zet je bovendien rental_duration om naar het type INTERVAL. Ter herinnering: hieronder staat één manier om die conversie uit te voeren.

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

Deze oefening maakt deel uit van de cursus

Functies voor het manipuleren van data in PostgreSQL

Cursus bekijken

Oefeninstructies

  • Zet rental_duration om door het te vermenigvuldigen met een INTERVAL van 1 dag
  • Trek de rental_date af van de return_date om het aantal days_rented te berekenen.
  • Sluit verhuringen uit met een NULL-waarde voor return_date.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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;
Code bewerken en uitvoeren