开始使用免费开始使用

INTERVAL 运算

如果您在经营一家真实的 DVD 租赁店,您会经常需要判断当前有哪些影片还在顾客手中。上一练习中,结果里有些记录的 return_dateNULL,这是因为这些租赁尚未归还。

film 表中的每条租赁都有一个关联的 rental_duration 列,表示顾客在被视为逾期之前可租用 DVD 的天数。本题中,您将排除 return_dateNULL 的影片,并把 rental_duration 转换为 INTERVAL 类型。下面是执行这种转换的一种方法提醒:

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

本练习是课程的一部分

在 PostgreSQL 中使用函数处理数据

查看课程

练习说明

  • rental_duration 乘以 1 天的 INTERVAL 进行转换。
  • return_date 减去 rental_date,计算出租的天数 days_rented
  • 排除 return_dateNULL 的租赁记录。

交互式实操练习

通过完成这段示例代码来试试这个练习。

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;
编辑并运行代码