Bắt đầu ngayBắt đầu miễn phí

Phép toán với INTERVAL

Nếu bạn đang điều hành một cửa hàng cho thuê DVD thực sự, sẽ có lúc bạn cần xác định những tựa phim nào hiện đang được khách hàng thuê. Ở bài trước, chúng ta thấy một số bản ghi trong kết quả có NULL ở cột return_date. Điều này là do lượt thuê đó vẫn chưa được trả.

Mỗi bản ghi trong bảng film có cột rental_duration thể hiện số ngày mà khách có thể thuê DVD trước khi bị coi là trễ hạn. Trong ví dụ này, bạn sẽ loại trừ các phim có return_dateNULL và đồng thời chuyển rental_duration sang kiểu INTERVAL. Dưới đây là một cách để thực hiện việc chuyển đổi này.

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

Bài tập này là một phần của khóa học

Các hàm thao tác dữ liệu trong PostgreSQL

Xem khóa học

Hướng dẫn bài tập

  • Chuyển rental_duration bằng cách nhân nó với INTERVAL 1 ngày
  • Trừ rental_date từ return_date để tính số days_rented.
  • Loại trừ các lượt thuê có return_dateNULL.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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;
Chỉnh sửa và Chạy Mã