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

केवल आज के (आधी रात से) टाइमस्टैम्प चुनें

@ फ्रैंक की टिप्पणी से प्रेरित होकर मैंने कुछ परीक्षण किए और उसी के अनुसार अपनी क्वेरी को अनुकूलित किया। यह 1) सही होना चाहिए और 2) जितनी जल्दी हो सके:

SELECT u.login, u.id, u.first_name
FROM   pref_users u
WHERE  u.login > u.logout
AND    u.login >= now()::date + interval '1h'
ORDER  BY u.login;

चूंकि आपकी तालिका में भविष्य का कोई टाइमस्टैम्प नहीं है (मुझे लगता है), आपको किसी ऊपरी सीमा की आवश्यकता नहीं है।
date_trunc('day', now()) लगभग now()::date as जैसा ही है (या नीचे दिए गए कुछ अन्य विकल्प), केवल यह कि यह timestamp लौटाता है date . के बजाय . दोनों का परिणाम timestamp होता है वैसे भी interval adding जोड़ने के बाद ।

नीचे के भाव थोड़ा अलग तरीके से प्रदर्शन करते हैं। वे सूक्ष्म रूप से भिन्न परिणाम देते हैं क्योंकि localtimestamp डेटा प्रकार देता है timestamp जबकि now() रिटर्न timestamp with time zone . लेकिन जब date पर कास्ट किया जाता है , या तो उसी स्थानीय . में बदल दिया जाता है दिनांक, और एक timestamp [without time zone] स्थानीय समय क्षेत्र में भी माना जाता है। तो जब संबंधित timestamp with time zone . से तुलना की जाती है वे सभी आंतरिक रूप से समान UTC टाइमस्टैम्प में परिणामित होते हैं। इस संबंधित प्रश्न में समय क्षेत्र प्रबंधन के बारे में अधिक जानकारी।

बेस्ट ऑफ फाइव। PostgreSQL 9.0 के साथ परीक्षण किया गया। 9.1.5 के साथ दोहराया गया:1% त्रुटि मार्जिन के भीतर लगातार परिणाम।

SELECT localtimestamp::date     + interval '1h'  -- Total runtime: 351.688 ms
     , current_date             + interval '1h'  -- Total runtime: 338.975 ms
     , date_trunc('day', now()) + interval '1h'  -- Total runtime: 333.032 ms
     , now()::date              + interval '1h'  -- Total runtime: 278.269 ms
FROM   generate_series (1, 100000)

now()::date स्पष्ट रूप से CURRENT_DATE से थोड़ा तेज है ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL पूर्ण पाठ खोज और ट्रिग्राम भ्रम

  2. Postgres - 2 ARRAYs के प्रतिच्छेदन को वापस करने का कार्य?

  3. PostgreSQL:psql सर्वर से कनेक्ट क्यों नहीं हो सकता है?

  4. परफेक्ट के साथ पोस्टग्रेएसक्यूएल ट्रेसिंग

  5. क्या किसी जॉइन में टेबल का क्रम मायने रखता है, जब LEFT (बाहरी) जॉइन का उपयोग किया जाता है?