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_duration
um, indem du es mit 1 Tag multiplizierstINTERVAL
- Ziehe die
rental_date
von derreturn_date
ab, um die Anzahl derdays_rented
zu berechnen. - Ausgeschlossen sind Vermietungen mit einem
NULL
Wert 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;