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

मैं पूरे दिन को डेटाटाइम फ़ील्ड से कैसे मेल करूं?

अपना timestampकास्ट करें date . का मान यदि आप सरल वाक्यविन्यास चाहते हैं। इस तरह:

SELECT *
FROM   tbl
WHERE  timestamp_col::date = '2011-12-01';  -- date literal

हालांकि, बड़ी तालिकाओं के साथ यह तेज़ होगा:

SELECT *
FROM   tbl
WHERE  timestamp_col >= '2011-12-01 0:0'    -- timestamp literal
AND    timestamp_col <  '2011-12-02 0:0';

कारण:दूसरी क्वेरी को तालिका में प्रत्येक मान को बदलने की आवश्यकता नहीं है और टाइमस्टैम्प कॉलम पर एक साधारण अनुक्रमणिका का उपयोग कर सकते हैं। अभिव्यक्ति सारगर्भित है।

नोट ऊपरी सीमा को बाहर रखा गया है (< <= . के बजाय ) सही चयन के लिए।
आप इस तरह के व्यंजक पर एक अनुक्रमणिका बनाकर उसकी भरपाई कर सकते हैं:

CREATE INDEX tbl_ts_date_idx ON tbl (cast(timestamp_col AS 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. स्प्रिंग जेपीए रिपोजिटरी के साथ प्रश्न चिह्न (?) चरित्र से कैसे बचें?

  2. PostgresConf US 2018 में दूसरा चतुर्थांश

  3. भारित पंक्ति संभावनाओं के साथ PostgreSQL तालिका से यादृच्छिक पंक्ति का चयन करें

  4. django RawQuerySet को क्वेरीसेट में बदलें

  5. Mac OSX Lion से PostgreSQL 9.0.4 को पूरी तरह से अनइंस्टॉल करें?