PostgreSQL, "आज" के सापेक्ष दिनांक जाँच रहा है


103

सोच रहा था कि क्या कोई किसी पोस्टग्रेज के साथ मदद कर सकता है। मेरे पास एक टेबल है जिसमें एक कॉलम है जिसे mydateपोस्टग्रेज डेट टाइप है। मैं कुछ ऐसा करना चाहता हूं:

SELECT * FROM MyTable WHERE mydate > [Today-1year]

मैंने पहले कभी भी Postgres का उपयोग नहीं किया है और मुझे यकीन है कि मुझे केवल कुछ फ़ंक्शन का नाम जानने की आवश्यकता है- मैं ख़ुशी से स्वयं संदर्भ देखूंगा। क्या कोई मुझे सही दिशा दिखा सकता है?

धन्यवाद!


2
रिकॉर्ड के लिए, प्रलेखन यहाँ है - यह एक छोटी सी आदत हो रही है, लेकिन यह बहुत व्यापक है।
निधि मोनिका का मुकदमा

जवाबों:


173
select * from mytable where mydate > now() - interval '1 year';

यदि आप केवल तारीख की परवाह करते हैं और समय की नहीं, तो विकल्प current_dateकीnow()


यह पूर्ण है! धन्यवाद
JustGage

1
ध्यान दें कि now()एक टाइमस्टैम्प है, इसलिए यह सीमा केवल एक साल पहले के दिन से लेकर आज के दिन का हिस्सा भी शामिल होगी। यदि आप पूर्ण दिन को फ़िल्टर करना चाहते हैं, तो now()::dateएलेक्स हावान्स्की ने सुझाव दिया।
tokenizer_fsj

1
@tokenizer_fsj के current_dateबजायnow()
पॉल टॉम्बलिन

66

मुझे लगता है कि यह ऐसा करेगा:

SELECT * FROM MyTable WHERE mydate > now()::date - 365;

10
ध्यान दें कि इसके विपरीत interval '1 year', यह लीप वर्षों का सम्मान नहीं करेगा। यह आपकी चिंता का विषय नहीं हो सकता है, लेकिन अगर ऐसा है, तो मेरे उत्तर का उपयोग करें।
पॉल टॉम्बलिन

यह स्वीकृत उत्तर होना चाहिए। now()टाइमस्टैम्प लौटाता है, इसलिए घटाने के बाद '1 day', आप एक टाइमस्टैम्प के साथ समाप्त होते हैं जो संभवतः उस दिन के हिस्से को फ़िल्टर कर देगा जिसे आप क्वेरी करने में रुचि रखते हैं। अधिकांश लोग एक पूरे दिन को फ़िल्टर करना चाहते हैं, और इसलिए इसका उपयोग करना now()::dateया CURRENT_DATEआवश्यक है।
tokenizer_fsj

9

यह आपको वर्तमान तिथि का ऋण 1 वर्ष देना चाहिए:

select now() - interval '1 year';

5

आप age()फ़ंक्शन का उपयोग करके भी देख सकते हैं

select * from mytable where age( mydate, now() ) > '1 year';

age() wil एक अंतराल लौटाते हैं।

उदाहरण के लिए age( '2015-09-22', now() )वापस आ जाएगी-1 years -7 days -10:56:18.274131

Postgresql प्रलेखन देखें


मुझे बताया गया age()है कि एक PostgreSQL-केवल फ़ंक्शन (
2018-10-05

आईडी प्रश्न के रूप में @loxaxs
hd1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.