2012-06-18 23 views
10

का पहला दिन मैं कैसे मैं '2012-01-01' चालू वर्षचालू वर्ष

एक और मुद्दा है के पहले दिन के लिए पूछ की जगह ले सकता है एक PostgreSQL डेटाबेस

SELECT * 
FROM accounts 
where insertdate BETWEEN '2012-01-01' AND CURRENT_TIMESTAMP 

तो में नीचे दिए गए क्वेरी की है। जब मेरे पास खाता तालिका में नया रिकॉर्ड होता है तो वही पल उपर्युक्त चयन चला रहा है, इसलिए यह मुझे वह रिकॉर्ड नहीं लाता है जिसे मैंने अभी बनाया है। क्या यह उचित है? इसे आगे बढ़ाने का सबसे अच्छा तरीका क्या है?

+1

'YYYY-01-01' हमेशा एक वर्ष का पहला दिन है ... –

उत्तर

23

आप date_trunc() लिए देख रहे हैं, जो एक निर्धारित परिशुद्धता के लिए एक तिथि (जैसे year, month, day) काटना कर सकते हैं:

SELECT * FROM accounts where insertdate BETWEEN 
date_trunc('year', now()) AND CURRENT_TIMESTAMP 
+0

यह सही था लेकिन मुझे एक और समस्या है। जब मेरे पास खाता तालिका में नया रिकॉर्ड होता है तो वही पल उपर्युक्त चयन चला रहा है, इसलिए यह मुझे वह रिकॉर्ड नहीं लाता है जिसे मैंने अभी बनाया है ... इसे आगे बढ़ाने का सबसे अच्छा तरीका क्या है? – user1392203

+0

यदि संचालन अलग-अलग लेन-देन में हो रहा है, तो सम्मिलित लेनदेन किए जाने पर क्वेरी को नया रिकॉर्ड मिलना चाहिए। यदि वे एक ही लेनदेन में हैं, तो आपको केवल सही क्रम में प्रश्नों को चलाने की ज़रूरत है। – beerbajay

+0

'वर्तमान दिन 23:59:59' जोड़ने का कोई तरीका है? '2012-6-19 23:59:59' जैसे कुछ – user1392203

1

आप कोशिश कर सकते हैं:

SELECT date_trunc('year', now()); 

आपकी क्वेरी में और इस CURRENT_TIMESTAMP.YEAR-01-01

संबंधित मुद्दे