Postgres में age()
है फ़ंक्शन जो दो तिथियों के आधार पर वर्षों, महीनों और दिनों में आयु लौटाता है।
यह तब तक ठीक काम करता है जब तक आप उम्र को केवल वर्षों में वापस नहीं करना चाहते।
उदाहरण के लिए, आप बस किसी व्यक्ति के जन्मदिन के आधार पर उसकी उम्र वापस करना चाहते हैं। आपको 32 . जैसा कुछ चाहिए के बजाय 32 साल 4 महीने 67 दिन , जो कि age()
है लौटने की संभावना है।
सौभाग्य से PostgreSQL में ऐसा करने का एक आसान तरीका है।
यदि आप केवल वर्षों में आयु चाहते हैं, तो आप extract()
. का उपयोग कर सकते हैं या date_part()
age()
. से वर्ष प्राप्त करने के लिए फ़ंक्शन का रिटर्न मान।
यहां एक उदाहरण दिया गया है जो date_part()
. का उपयोग करता है समारोह:
SELECT date_part('year', age(timestamp '2003-12-27'));
परिणाम:
16.0
जब मैं इसे Azure डेटा स्टूडियो में चलाता हूं तो यह ऐसा दिखाई देता है।
जब मैं इसे psql . में चलाता हूं , मुझे यह मिलता है:
16
दोनों extract()
और date_part()
डबल सटीक डेटा प्रकार का उपयोग करके अपने परिणाम लौटाएं।
यदि आवश्यक हो, तो आप इसे ::int
के साथ जोड़कर एक पूर्णांक (या अन्य डेटा प्रकार) में बदल सकते हैं ।
SELECT date_part('year', age(timestamp '2003-12-27'))::int;
परिणाम:
16