เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การคำนวณด้วย INTERVAL

หากคุณบริหารร้านเช่า DVD จริง ๆ ย่อมมีบางครั้งที่ต้องตรวจสอบว่าลูกค้ากำลังเช่าภาพยนตร์เรื่องใดอยู่บ้าง จากแบบฝึกหัดก่อนหน้า เราพบว่าบางรายการในผลลัพธ์มีค่า NULL ใน return_date ซึ่งหมายความว่าการเช่านั้นยังไม่ได้คืน

แต่ละรายการเช่าในตาราง film มีคอลัมน์ rental_duration ที่บอกจำนวนวันสูงสุดที่ลูกค้าสามารถเช่า DVD ได้ก่อนที่จะถือว่าเกินกำหนด ในแบบฝึกหัดนี้ จะกรองรายการที่มีค่า NULL ใน return_date ออก และแปลง rental_duration ให้เป็นประเภท INTERVAL โดยสามารถใช้วิธีดังตัวอย่างนี้

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

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

ฟังก์ชันสำหรับจัดการข้อมูลใน PostgreSQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • แปลง rental_duration โดยคูณกับ INTERVAL 1 วัน
  • ลบ rental_date ออกจาก return_date เพื่อคำนวณจำนวน days_rented
  • กรองรายการเช่าที่มีค่า NULL ใน return_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;
แก้ไขและรันโค้ด