LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Rechne rental_duration um, indem du es mit 1 Tag multiplizierst INTERVAL
  • Ziehe die rental_date von der return_date ab, um die Anzahl der days_rented zu berechnen.
  • Ausgeschlossen sind Vermietungen mit einem NULL Wert für return_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;
Code bearbeiten und ausführen