क्या मैं पूछ सकता हूँ, PostgreSql में, कैसे करना है

where CURRENT_DATE - timestamp > (Value of years/months/days).

यहां मैं एक व्यक्ति की उम्र की गणना करना चाहता हूं और सत्यापित करना चाहता हूं कि यह एक निश्चित मूल्य से बड़ा या छोटा है, इसलिए मुझे CURRENT_DATE और टाइमस्टैम्प का घटाव करना होगा जब वह पैदा हुआ था, लेकिन फिर मुझे नहीं पता कि कैसे क्या, फिर भी कोई मेरी मदद कर सकता है?
आपका बहुत बहुत धन्यवाद

0
martinwang1985 10 मार्च 2017, 19:37

1 उत्तर

सबसे बढ़िया उत्तर

आपको INTERVAL प्रकार की आवश्यकता होगी।

इसे DATE/से घटाया जा सकता है TIMESTAMP, तो आपका सबसे अच्छा विधेय होगा:

WHERE CURRENT_TIMESTAMP - INTERVAL '18 years' > your_timestamp_column

या, (जब दिया गया INTERVAL एक क्वेरी पैरामीटर होना चाहिए, और) यदि आप केवल मूल प्रकारों (सबसे अधिक संभावना) को बांध सकते हैं, तो आप बस f.ex. एक INTEGER साल का मान:

WHERE CURRENT_TIMESTAMP - (? * INTERVAL '1 year') > your_timestamp_column

तकनीकी रूप से, आपका मूल तर्क भी काम कर सकता है:

WHERE CURRENT_TIMESTAMP - your_timestamp_column > INTERVAL '18 years'

लेकिन जो your_timestamp_column पर किसी भी अनुक्रमणिका का उपयोग नहीं करेगा और INTERVAL के अधीन है औचित्य.

1
Community 23 मई 2017, 15:00
हाँ, यह काम करता है" INTERVAL '18 साल'", आपका बहुत-बहुत धन्यवाद
 – 
martinwang1985
10 मार्च 2017, 19:52