2013-04-03 9 views
6

ओरेकल 10 जी का उपयोग कर तालिका में डीडी/एमएम/yyyy में सिस्टम दिनांक कैसे सम्मिलित करें?ऑरैकल में सिस्टम दिनांक डालना

निम्न क्वेरी का उपयोग करते समय, यह सिस्टम दिनांक 03/04/0013 के रूप में सम्मिलित करता है। मुझे 03/04/2013 की ज़रूरत है। क्या आप इस समस्या को हल करने में मेरी मदद कर सकते हैं?

insert into GtTable 
values('111','Name',300,'Tour',to_date('02/04/2012','DD/MM/YYYY'),to_date(sysdate,'DD/MM/YYYY')); 

लेकिन जब '02/04/2012 डालने 'सीधे, यह '02/04/2012 के रूप में के रूप में ही स्वीकार करता है'।

+0

क्या आप वाकई काम कर रहे हैं? क्या आपने कुछ '22/04/2012'' की कोशिश की है? 'Nls_date_format' सेट क्या है? – hofmeister

उत्तर

4

अपने डालने पर पिछले क्षेत्र दिनांक प्रकार क्षेत्र है, तो आप SYSDATE पर किसी भी रूपांतरण, निम्नलिखित ठीक होना चाहिए की आवश्यकता चाहिए नहीं है, तो:

insert into GtTable 
values('111', 'Name', 300, 'Tour', to_date('02/04/2012','DD/MM/YYYY'), sysdate); 

लेकिन अगर यह एक varchar क्षेत्र है, निम्नलिखित काम करना चाहिए:

insert into GtTable 
values('111', 'Name', 300, 'Tour', to_date('02/04/2012','DD/MM/YYYY'), to_char(sysdate, 'dd/mm/yyyy')); 
+0

मैं वर्तमान तारीख को सम्मिलित करने के लिए इसका उपयोग करने का प्रयास करता हूं लेकिन यह मुझे तारीख प्रारूप को मान्यता देने में त्रुटि नहीं देता है (SYSDATE, 'DD-MMM-YYYY') –

+0

@MRAND मुझे लगता है कि आपको जो समस्या मिल रही है वह ** एबीसीएड * * ऊपर, [इस टिप्पणी] में [https://stackoverflow.com/a/15779452/2156229) – warantesbr

12

आप डेट पर TO_DATE को सक्रिय नहीं करना चाहिए

sysdate पहले से ही एक तारीख है, जब आपचलानेइसे पहले पैरामीटर के रूप में, आप ओरेकल को NLS_DATE_FORMAT के अनुसार इसे एक स्ट्रिंग में रूपांतरित कर देते हैं, जो आपके मामले में शायद YY और YYYY नहीं है।

ओरेकल में एक तारीख एक नंबर एक तारीख और समय का प्रतिनिधित्व करने, यह एक "प्रारूप" नहीं है, तो आप समय मूल्य तो आप इसे इस काट-छांट करने की आवश्यकता के बिना sysdate सम्मिलित करना चाहते है:

insert into GtTable 
values('111','Name',300,'Tour',to_date('02/04/2012','DD/MM/YYYY'),trunc(sysdate)) 
+0

[यहां] (http://www.sqlfiddle.com/#!4/d41d8/9426) एक sqlfiddle उदाहरण है –

0

मुझे लगता है कि प्रदर्शित करने का प्रारूप पर्यावरण पैरामीटर के कारण है। TO_CHAR (SYSDATE, 'DD/MM/YYYY') क्या आप सिस्टम दिनांक को डीडी/एमएम/वाईवायवाई के रूप में सम्मिलित कर सकते हैं, लेकिन, अब यह दिनांक प्रकार नहीं है।

+1

मुझे नहीं लगता कि यह एक अच्छा विचार है, क्योंकि यदि डेटा प्रकार 'DATE' है तो ऑरैकल स्ट्रिंग को nls_date_format के अनुसार एक तारीख में रूपांतरित कर देगा और भले ही 'to_char' फ़ंक्शन सही तरीके से काम करेगा, फिर भी सम्मिलित हो जाएगा ... देखें [यहां] (http://www.sqlfiddle.com/#!4/d41d8/9430) –

+0

साल, आप सही हैं। अगर सिर्फ डीडी/एमएम/yyyy के रूप में प्रदर्शित करना चाहते हैं, to_char काम कर सकते हैं। केवल डालने के लिए, यदि यह कॉलम डेटा प्रकार है, तो सम्मिलन असफल हो जाएगा। आप वापस_date कर सकते हैं, लेकिन यह थोड़ा बेवकूफ है ... :) – Gentlezerg

संबंधित मुद्दे