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

त्रुटि:अनुक्रमणिका अभिव्यक्ति में कार्यों को पोस्टग्रेज में अपरिवर्तनीय चिह्नित किया जाना चाहिए

हैकर्स मेलिंग लिस्ट में इस थ्रेड के अनुसार:

http://www.mail-archive.com/[email protected]/msg86725.html

यह to_char . के रूप में इच्छित व्यवहार है LC_MESSAGES सेटिंग पर निर्भर करता है

आपके मामले में यह स्पष्ट रूप से समझ में नहीं आता है क्योंकि आप जिस प्रारूप का उपयोग कर रहे हैं वह कभी भी लोकेल पर निर्भर नहीं होगा, इसलिए यदि आपको इंडेक्स में टेक्स्ट प्रस्तुतिकरण का उपयोग करने की आवश्यकता है, तो आप अपना खुद का to_char() फ़ंक्शन बना सकते हैं और इसे चिह्नित कर सकते हैं अपरिवर्तनीय:

CREATE OR REPLACE FUNCTION my_to_char(some_time timestamp) 
  RETURNS text
AS
$BODY$
    select to_char($1, 'yyyy-mm-dd');
$BODY$
LANGUAGE sql
IMMUTABLE;

यदि आपको इसे इंडेक्स में टेक्स्ट के रूप में उपयोग करना है (और सैम के सुझाव के अनुसार कास्ट का उपयोग नहीं कर सकते हैं) तो आपको अपना स्वयं का स्वरूपण फ़ंक्शन बनाना होगा जिसे आप अपरिवर्तनीय के रूप में चिह्नित कर सकते हैं। इसके बाद इसे इंडेक्स में इस्तेमाल किया जा सकता है।

लेकिन Postgres को उपयोग करने के लिए जिस इंडेक्स पर आपको कॉल करना होगा my_to_char() आपके SQL कथन में भी। जब आप बिल्ट-इन to_char() . का उपयोग करते हैं तो यह इसे पहचान नहीं पाएगा

लेकिन मुझे लगता है कि सूचकांक में सीधी तारीख का उपयोग करने का सैम का सुझाव शायद बेहतर है



  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. PostgreSQL का उपयोग करके वर्तमान डेटाबेस में तालिकाओं को कैसे सूचीबद्ध करें

  3. SSH टनल के माध्यम से PostgreSQL

  4. जाँच कर रहा है कि क्या अजगर के तहत एक पोस्टग्रेस्क्ल टेबल मौजूद है (और शायद Psycopg2)

  5. PostgreSQL में मॉड () कैसे काम करता है