मुझे सालों पहले ऐसी ही समस्या थी, और तब पता चला कि मैं कर सकता हूं
ALTER DATABASE database_name SET datestyle TO "ISO, MDY";
उसकी कोशिश करो। (यह आपके सभी डेटाबेस के समाधान के लिए प्रति डेटाबेस के आधार पर काम करता है, इस पैरामीटर को आप में सेट करें postgresql.conf- @a_horse_with_no_name के लिए धन्यवाद।)
कृपया ध्यान रखें कि डिफ़ॉल्ट सेटिंग स्थानीय स्वतंत्र नहीं है । हालाँकि, initdbइसे सेट करने के बाद इसे जो भी चाहिए, आप इसे अपने आप में बदल सकते हैं postgresql.conf।
@ स्वैसेक की टिप्पणी ने मुझे ध्यान दिलाया कि मेरी सेटिंग्स के साथ:
test=# SHOW lc_ctype;
lc_ctype
--------------------
Hungarian, Hungary
(1 row)
test=# SHOW lc_time;
lc_time
--------------------
Hungarian, Hungary
(1 row)
सेटिंग datestyleका निम्नलिखित प्रभाव है:
SET datestyle TO "ISO, MDY";
SELECT current_date;
date
------------
2012-06-21
(1 row)
अब यह वास्तव में अपेक्षित नहीं है - और अन्य सर्वर पर भी ऐसा ही en_US.UTF8है। कोशिश कर रहा है "ISO, DMY", मुझे यह भी सुझाव देता है कि "ISO"एक आउटपुट का उत्पादन करते समय यह हिस्सा कम या ज्यादा होता है । के लिए इनपुट मूल्यों, यह नीचे दी गई तालिका में संक्षेप के रूप में, उम्मीद प्रभाव पड़ता है:
input values
'2016/01/21' '01/21/2016' '21/01/2016' output
──────────────────────────────────────────────────────────────────────
ISO, YMD OK -- -- 2016-01-21
ISO, DMY -- OK -- 2016-01-21
ISO, MDY -- -- OK 2016-01-21
- ऊपर का अर्थ है कि दी गई इनपुट शैली में दी गई datestyleसेटिंग के लिए त्रुटि है ।
प्रलेखन के सावधानीपूर्वक पढ़ने पर, कोई यह देख सकता है कि datestyleयह आंशिक रूप से परस्पर विरोधी सेटिंग्स की एक जोड़ी है:
ऐतिहासिक कारणों से, इस चर में दो स्वतंत्र घटक होते हैं: आउटपुट प्रारूप विनिर्देश (आईएसओ, पोस्टग्रेज, एसक्यूएल या जर्मन) और वर्ष / माह / दिन के आदेश के लिए इनपुट / आउटपुट विनिर्देश (डीएमवाई, एमडीवाई, या वाईएमडी)।
मेरे लिए इसका मतलब यह है कि किसी एक को ढूंढना होगा जो अपनी आवश्यकताओं को थोड़ा प्रयोग करके फिट करता है - लेकिन सबसे अच्छा तरीका यह है कि इसे डिफ़ॉल्ट पर छोड़ दें और हमेशा एक अस्पष्ट इनपुट प्रारूप का उपयोग करें। इनमें से दो हैं 'YYYY-MM-DD'और 'YYYYMMDD'। मैं पूर्व को पसंद करता हूं - यहां तक कि इस IRL का उपयोग करके;)
नोट: datestyleसेटिंग (और अन्य रनटाइम सेटिंग्स) को एक डेटाबेस से स्थायी रूप से सेट करके, या इसे वर्तमान सत्र के लिए सेट करके postgresql.confओवरराइड किया जा सकता है । यह बाद में उपयोगी हो सकता है जब एक अलग दिनांक प्रारूप के साथ कुछ तीसरे पक्ष के डेटा को आयात किया जाए।ALTER DATABASE bla SET datestyle ...SET datestyle TO ...