PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Postgresql में दो तिथियों के बीच अंतर

कोशिश करें:

date_part('year',age(coalesce(d1,current_date), d2))::int;

age(d1,d2) फ़ंक्शन निम्न प्रारूप में दो तिथियों के बीच वर्षों, महीनों और दिनों की संख्या देता है:

xxx year(s) xxx mon(s) xxx day(s).

इस आउटपुट से date_part() . का उपयोग करके केवल वर्ष का अंतर चुनने के लिए। और NULL को हैंडल करने के लिए if स्टेटमेंट डालने की भी जरूरत नहीं है जैसा कि मैंने coalesece added जोड़ा है जो पहले देता है NON Null मान, तो यदि d1 NULL है यह cuurent_date लौटाता है

कार्य संरचना:

CREATE OR REPLACE FUNCTION diff(d1 date,d2 date) RETURNS int AS $$
BEGIN

 RETURN date_part('year',age(coalesce(d1,current_date), d2))::int;
END
$$ language plpgsql;

फंक्शन कॉल:

select * from diff(null,'2010-04-01');
select * from diff('2012-10-01','2010-04-01');



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक्टो क्वेरी - तिथियां + पोस्टग्रेज अंतराल + क्वेरी इंटरपोलेशन

  2. दो कॉलमों को मिलाएं और एक नए कॉलम में जोड़ें

  3. उपयोगकर्ता मॉडल को पोस्टग्रेज़ में सहेजना हाइबरनेट

  4. दूरी की गणना करने के लिए पोस्टगिस के साथ पोस्टग्रेएसक्यूएल को कैसे कॉन्फ़िगर करें

  5. क्वेरी पोस्टग्रेज़ को ऑप्टिमाइज़ कैसे करें