तिथियों का कोई प्रारूप नहीं होता - वे 7- या 8-बाइट्स द्वारा दर्शाए जाते हैं। ।
SELECT DUMP( SYSDATE ) FROM DUAL;
आउटपुट हो सकता है:
Typ=13 Len=8: 220,7,11,26,16,41,9,0
कंप्यूटरों के लिए तिथियों की तुलना करने के लिए यह प्रारूप बहुत उपयोगी है लेकिन लोगों के लिए इतना उपयोगी नहीं है; इसलिए, जब SQL क्लाइंट (SQL/plus, SQL Developers, TOAD, आदि) एक तिथि प्रदर्शित करता है तो यह बाइट्स प्रदर्शित नहीं करता है लेकिन इसे एक स्ट्रिंग के रूप में प्रदर्शित करता है।
यह TO_CHAR()
. पर एक अंतर्निहित कॉल करके ऐसा करता है (या तारीखों को सख्त करने की कोई अन्य आंतरिक विधि) और इस रूपांतरण को करने के लिए एक डिफ़ॉल्ट प्रारूप मास्क का उपयोग करता है।
SQL/Plus और SQL डेवलपर उपयोगकर्ता के सत्र पैरामीटर NLS_DATE_FORMAT
का उपयोग करेंगे यह रूपांतरण करने के लिए - देखें यह उत्तर
इस बारे में।
तो आपकी दूसरी क्वेरी परोक्ष रूप से कुछ करने के लिए परिवर्तित की जा रही है (लेकिन, लगभग निश्चित रूप से, अधिक कुशलता से):
SELECT TO_CHAR(
TO_DATE('01-01-2015','DD-MM-YYYY'),
( SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT' )
)
FROM DUAL