2009-12-19 11 views
7

मेरे पास सी # में डेटटाइम ऑब्जेक्ट है और मैं SQL सर्वर डेटाटाइम फ़ील्ड में एक सम्मिलित करना चाहता हूं। इसके लिए सही प्रारूप क्या है?SQL सर्वर डेटाटाइम फ़ील्ड में डेटाटाइम को प्रारूपित करने का सही तरीका क्या है

+4

शायद आपको कोड में एसक्यूएल स्ट्रिंग्स का निर्माण नहीं करना चाहिए। इसके बजाय आपको या तो संग्रहित प्रो, पैरामीटरयुक्त क्वेरी या ओआरएम का उपयोग करना चाहिए। इनमें से कोई भी फ़ॉर्मेटिंग के साथ आपकी समस्या का समाधान करेगा क्योंकि आप ऑब्जेक्ट पास करते हैं, आपको कोई स्ट्रिंग स्वरूपण करने की आवश्यकता नहीं है। –

उत्तर

16

ऐसा करने का सही तरीका पैरामीटरयुक्त क्वेरी, टेक्स्ट स्वरूपण का उपयोग करके करना है। फिर आप एक दृढ़ता से टाइप SqlDbType.DateTime पैरामीटर का उपयोग कर सकते हैं।

(यदि आप पूरी तरह यह करने के लिए पाठ स्वरूपण उपयोग करना आवश्यक है - और मैं दृढ़ता से यह खिलाफ सलाह देते हैं -। तो yyyyMMdd HH:mm:ss की तरह कुछ चाल करना चाहिए)

+0

क्या मैं अभी भी पैरामीटरयुक्त क्वेरी में स्ट्रिंग में गुजर रहा हूं और एक ही समस्या है? – leora

+0

दरअसल, प्रारूप जो भाषा और क्षेत्रीय सेटिंग्स के बावजूद किसी भी SQL सर्वर पर काम करने की गारंटी है, 'yyyyMMdd एचएच: मिमी: एसएस' (डैश के बिना - कुछ भाषा सेटिंग्स में परेशानी का कारण बनता है) –

+0

@marc_s: मेरे पास है सुरक्षित-इन-ऑल-परिस्थितियों प्रारूप का उपयोग करने के लिए उत्तर अपडेट किया गया। – LukeH

0

उपयोग SET DATEFORMAT

एक नमूना took from here

 SET NOCOUNT ON 
    CREATE TABLE X(EXAMPLE INT, D SMALLDATETIME) 
    -- EXAMPLE 1 
    SET DATEFORMAT MDY 
    INSERT INTO X VALUES (1, '10/30/56') 
    -- EXAMPLE 2 
    SET DATEFORMAT YDM 
    INSERT INTO X VALUES (2, '56/31/10') 
    -- EXAMPLE 3 
    SET DATEFORMAT YMD 
    INSERT INTO X VALUES (3, '56/10/31') 
    SELECT * FROM X 
3

@ ल्यूक के उत्तर पर विस्तार करने के लिए मैं बस दूसरे दिन इस बग में आया।

yyyy-MM-dd HH:mm:ss प्रारूप SQL सर्वर 2005 (एक उदाहरण फ्रेंच है) पर एक स्थान/भाषा मुद्दा है, लेकिन एसक्यूएल 2008 में तय हो गई है: yyyy-MM-dd HH:mm:ss (अंतरिक्ष विभाजक):

तो, यह प्रारूप का उपयोग न करें।

केवल का उपयोग करें: yyyy-MM-ddTHH:mm:ss ("टी" विभाजक) या yyyyMMdd HH:mm:ss (कोई पानी का छींटा सीमांकक)

महत्वपूर्ण यदि आप स्क्रिप्ट को datetime स्थिरांक शामिल पैदा कर रहे हैं।

Jamie Thomson's article on SQL Blog

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