हैकर्स मेलिंग लिस्ट में इस थ्रेड के अनुसार:
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()
. का उपयोग करते हैं तो यह इसे पहचान नहीं पाएगा
लेकिन मुझे लगता है कि सूचकांक में सीधी तारीख का उपयोग करने का सैम का सुझाव शायद बेहतर है