INTERVAL Arithmetik
Wenn du einen echten DVD Verleih betreiben würdest, müsstest du manchmal feststellen, welche Filmtitel gerade bei den Kunden zum Verleih angeboten werden. In der vorherigen Übung haben wir gesehen, dass einige der Datensätze in den Ergebnissen einen NULL Wert für die return_date hatten. Das liegt daran, dass die Miete noch nicht bezahlt war.
Jeder Anmietung in der Tabelle film ist eine Spalte rental_duration zugeordnet, die die Anzahl der Tage angibt, die eine DVD von einem Kunden gemietet werden kann, bevor sie als verspätet gilt. In diesem Beispiel schließt du Filme aus, die einen NULL Wert für den return_date haben und wandelst auch den rental_duration in einen INTERVAL Typ um. Hier eine Erinnerung an eine Methode zur Durchführung dieser Umwandlung.
SELECT INTERVAL '1' day * timestamp '2019-04-10 12:34:56'
Diese Übung ist Teil des Kurses
Funktionen zur Manipulation von Daten in PostgreSQL
Anleitung zur Übung
- Rechne
rental_durationum, indem du es mit 1 Tag multiplizierstINTERVAL - Ziehe die
rental_datevon derreturn_dateab, um die Anzahl derdays_rentedzu berechnen. - Ausgeschlossen sind Vermietungen mit einem
NULLWert fürreturn_date.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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;