始める無料で始める

INTERVAL の演算

実際の DVD レンタル店を運営している場合、現在顧客に貸し出し中の作品タイトルを確認する必要が出てくることがあります。前の演習では、結果の一部のレコードで NULLreturn_date値 になっていることを確認しました。これは、そのレンタル品がまだ返却されていないことを意味します。

film テーブルの各レンタル品には rental_duration 列があり、これは顧客が DVD を延滞扱いになるまでに借りられる日数を表しています。この演習では、NULLreturn_date のレコードを除外したうえで、rental_durationINTERVAL 型に変換します。この変換を行う方法の一例を以下に示します。

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

この演習はコースの一部です

PostgreSQL のデータ操作関数

コースを見る

演習の手順

  • rental_duration に 1 日分の INTERVAL を掛けて変換します。
  • rental_date から return_date を引いて、days_rentedを計算します。
  • NULLreturn_date のレンタルを除外します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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;
コードを編集して実行