INTERVAL arithmetic
यदि आप एक वास्तविक DVD Rental स्टोर चला रहे होते, तो कई बार आपको यह पता लगाना पड़ता कि कौन-से फिल्म टाइटल्स फिलहाल ग्राहकों के पास रेंट पर हैं। पिछले अभ्यास में, हमने देखा कि कुछ परिणामों में return_date के लिए NULL मान था। ऐसा इसलिए था क्योंकि वह रेंटल अभी बकाया था.
film टेबल में हर रेंटल के साथ एक rental_duration कॉलम जुड़ा होता है, जो उन दिनों की संख्या बताता है जितने दिनों तक कोई ग्राहक DVD रख सकता है, उसके बाद उसे लेट माना जाता है। इस उदाहरण में, आप उन फिल्मों को बाहर करेंगे जिनका return_date NULL है, और साथ ही rental_duration को INTERVAL टाइप में कन्वर्ट करेंगे। यह रहा उस कन्वर्ज़न को करने के एक तरीके की याद दिलाने के लिए एक उदाहरण:
SELECT INTERVAL '1' day * timestamp '2019-04-10 12:34:56'
यह अभ्यास पाठ्यक्रम का हिस्सा है
PostgreSQL में डेटा मैनिपुलेट करने के लिए फ़ंक्शंस
अभ्यास निर्देश
rental_durationको 1 day वालेINTERVALसे गुणा करके कन्वर्ट करें.days_rentedकी गणना के लिएreturn_dateमें सेrental_dateघटाएँ.- जिन रेंटल्स के
return_dateमेंNULLहै, उन्हें बाहर करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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;