2012-02-07 15 views
32

के साथ दिनांक स्ट्रिंग के लिए ओरेकल to_date फ़ंक्शन का उपयोग करना मुझे ओरेकल डीबी में कुछ प्रविष्टियां करना है।मिलीसेकंड

to_date('23.12.2011 13:01:01', 'DD.MM.YYYY HH24:MI:SS') 

जो ठीक से काम करता: मैं कुछ तारीखों प्रलेखन मैं आवेषण लिखा TO_DATE इस प्रकार के बाद निम्न स्वरूप

'23.12.2011 13:01:001' 

में है। अब मैं प्रारूप

'23.12.2011 13:01:001' 

मैं निम्नलिखित की कोशिश की है के साथ मिलीसेकेंड के साथ तारीखों है:

to_date('23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3') 

जो सही नहीं है (एक त्रुटि 01821. 00000 बचाता है - "तिथि मान्य नहीं")।

मैं इस प्रारूप के लिए मिलीसेकंड के साथ किस "स्ट्रिंग" का उपयोग करूँ?

अग्रिम धन्यवाद!

+0

[मिलीसेकेंड के साथ Oracle में तारीख करने के लिए स्ट्रिंग] (http के संभावित डुप्लिकेट: // stackoverflow.com/questions/1758219/string-to-date-in-oracle-with-milliseconds) –

उत्तर

54

एक ओरेकल DATE एक सेकंड की तुलना में अधिक सटीकता के साथ समय स्टोर नहीं करता है। आप DATE कॉलम में मिलीसेकंड सटीक डेटा स्टोर नहीं कर सकते हैं।

आपका दो विकल्प या तो मिलीसेकेंड की स्ट्रिंग को काटना यह एक DATE में परिवर्तित करने से पहले, कर रहे हैं यानी

to_date(substr('23.12.2011 13:01:001', 1, 19), 'DD.MM.YYYY HH24:MI:SS') 

या एक TIMESTAMP कि समर्थन मिलीसेकंड परिशुद्धता करता है में स्ट्रिंग परिवर्तित करने के लिए

to_timestamp('23.12.2011 13:01:001', 'DD.MM.YYYY HH24:MI:SSFF3') 
7

TO_DATE DATE डेटाटाइप में रूपांतरण का समर्थन करता है, जो मिलीसेकंड का समर्थन नहीं करता है। यदि आप ओरेकल में मिलीसेकंद समर्थन चाहते हैं, तो आपको TIMESTAMP डेटाटाइप और TO_TIMESTAMP फ़ंक्शन को देखना चाहिए।

उम्मीद है कि मदद करता है।

-2

आपको तिथि वर्ग को टाइमस्टैम्प में बदलना होगा।

String s=df.format(c.getTime()); 
java.util.Date parsedUtilDate = df.parse(s); 
java.sql.Timestamp timestamp = new java.sql.Timestamp(parsedUtilDate.getTime()); 
+3

ओरेकल पीएल/एसक्यूएल के साथ जावा को क्या करना है? –

3

आप मिलीसेकेंड के लिए इस प्रारूप SS.FF कोशिश कर सकते हैं:

yyyy-mm-dd HH:MI:SS.FF 

अधिक जानकारी के लिए:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions193.htm

+1

आपके लिए टिप्पणियां धन्यवाद। यह सवाल पहले से ही 5 साल का है! – Luixv

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