2013-04-18 7 views
6

में समय में वर्चर कन्वर्ट करें मैं समय प्रारूप "10:02:22 अपराह्न" SQL सर्वर डेटटाइम प्रारूप में कैसे परिवर्तित करूं।एसक्यूएल सर्वर

मेरे पास ऐसे डेटा का एक स्तंभ है। मैंने इस कॉलम को एक CSV फ़ाइल से आयात किया है और अब इसे डेटटाइम प्रारूप में रूपांतरित करना चाहता हूं ताकि मैं डेट टाइम फ़ंक्शंस का उपयोग कर सकूं।

मैं इस कॉलम को सही दिनांक समय प्रारूप के साथ किसी अन्य तालिका में सम्मिलित करने में सक्षम होना चाहता हूं।

+0

क्या उस समय में डेटा वास्तव में मौजूद है? – RichardTheKiwi

+0

किसी भी प्रारूप के बिना डीबी में दिनांक और समय मान संग्रहीत किए जाते हैं। यह क्लाइंट एप्लिकेशन प्रारूप दिनांक और समय मान है। –

+0

@ रिचर्डथीकिवी: हाँ अंतरिक्ष AM/PM से पहले मौजूद है। – SarangArd

उत्तर

1

आपको इसे बदलने की आवश्यकता नहीं है। एक अंतर्निहित डाली तब होता है जब आप

INSERT otherTable 
SELECT ....., timeAsVarchar, ... 
    FROM csvTable 

का उपयोग हर समय डेटा (प्रमुख अंतरिक्ष या नहीं) स्ट्रिंग से parseable है, तो क्वेरी खूबसूरती से काम करेंगे। यदि फिर भी, वहाँ बुरा या खाली डेटा की संभावना है कि एक समय में परिवर्तित नहीं किया जा सकता है, का परीक्षण यह पहली

INSERT otherTable 
SELECT ....., CASE WHEN ISDATE(timeAsVarchar)=1 THEN timeAsVarchar END, ... 
    FROM csvTable 

ELSE NULL निहित है तो मैं इसे बाहर छोड़ दिया है।

+0

लागू कास्ट रूपांतरण विफल रहता है और मुझे त्रुटि मिलती है, "दिनांक और/या चरित्र स्ट्रिंग से समय परिवर्तित करते समय रूपांतरण विफल हुआ।" तो मैं क्या करूँ। मैं "अन्यटेबल" में टाइम कॉलम को कैसे परिभाषित करूं? ? – SarangArd

2

इस लिंक का उपयोग करें: http://msdn.microsoft.com/en-us/library/ms187928.aspx

केवल समय रूपांतरण के लिए ...

SELECT CONVERT(TIME, '10:00:22 PM'); 

निम्नलिखित उत्पादन देता है ...

22:00:22.000000 
दिनांक और समय के साथ

समय रूपांतरण ...

SELECT CONVERT(DATETIME, '10:00:22 PM'); 

देता है निम्नलिखित आउटपुट ...

1900-01-01 22:00:22.0000 

नोट: datetime के लिए आपको इनपुट के रूप में विशिष्ट तिथि होने की आवश्यकता है अन्यथा यह डिफ़ॉल्ट शताब्दी की तारीख पर विचार करें।

+0

किसी कारण Convert विफल जब मैं स्तंभ परिवर्तित करने के लिए प्रयास करें। लेकिन यह सफल होता है जब मैं इसे व्यक्तिगत रूप से करते हैं। मैं जान सकता हूँ क्यों? – SarangArd

+0

यह AM मान नहीं बल्कि परिवर्तित प्रधानमंत्री मान करने में सक्षम है। यह नहीं ' "00:00:01 अपराह्न" को "00:59:59 अपराह्न" में कनवर्ट करने में सक्षम है लेकिन यह "01:00:00 अपराह्न" परिवर्तित कर सकता है क्या आप इस पर मेरी सहायता कर सकते हैं ?? – SarangArd

+1

12 घंटों में सिस्टम में 00 घंटे नहीं हैं, यही कारण है कि आप वार्तालाप विफल हो रहे हैं। –

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