2011-03-13 15 views
64

मैं SQL डेटाबेस तालिका में डेटाटाइम कैसे सम्मिलित कर सकता हूं? क्या इस क्वेरी को C#/.NET में सम्मिलित आदेश के माध्यम से सम्मिलित करने का कोई तरीका है?SQL डेटाबेस तालिका में डेटाटाइम कैसे सम्मिलित करें?

+1

इस चर्चा में एसक्यूएल सर्वर में दिनांक के लिए हल किया जाता है http://stackoverflow.com/a/12957690/2120484 – oaamados

उत्तर

102

दिनांक समय मूल्यों के रूप में यदि वे एकल उद्धरण से घिरा हुआ तार कर रहे हैं डाला जाना चाहिए डेटाटाइम मानों को सही तरीके से सम्मिलित करने के लिए कार्य करता है। हालांकि, अगर आप इसे मैन्युअल रूप से कर रहे हैं, यह महत्वपूर्ण है DateFormat का उपयोग कर दिनांक स्वरूप अलग करने के लिए और सामान्यीकृत स्वरूप का उपयोग करना:

Set DateFormat MDY --indicates the general format is Month Day Year 

Insert Table(DateTImeCol) 
Values('2011-03-12') 

DateFormat की स्थापना करके, एसक्यूएल सर्वर अब मानता है कि मेरी प्रारूप YYYY-MM-DD बजाय YYYY-DD-MM है। YYYYMMDD उदहारण के लिए:

SET DATEFORMAT

एसक्यूएल सर्वर भी एक सामान्य स्वरूप है जो हमेशा एक ही तरीके व्याख्या की है पहचानता है 20110312

यदि आप टी-एसक्यूएल का उपयोग कर वर्तमान दिनांक और समय को सम्मिलित करने के बारे में पूछ रहे हैं, तो मैं कीवर्ड CURRENT_TIMESTAMP का उपयोग करने की सलाह दूंगा। उदाहरण के लिए:

Insert Table(DateTimeCol) 
Values(CURRENT_TIMESTAMP) 
+1

वह सही है? आप 'डेटफॉर्मेट MDY' सेट करें, लेकिन बाद में आप कहते हैं कि SQL सर्वर अब मेरा प्रारूप मानता है 'YYY-MM-DD'। क्यों SQL सर्वर आपके प्रारूप को 'सेट डेटफॉर्मैट' से मेल नहीं खाता और 'MM-DD-YYYY'' की तलाश क्यों करता है? मैं यह नहीं कह रहा कि यह गलत है (मुझे नहीं पता), लेकिन यह काउंटर-अंतर्ज्ञानी लगता है। – JerryOL

+3

@ जेरीओएल - 'सेट डेटफॉर्मेट एमडीवाई' केवल यह निर्धारित करता है कि SQL कैसे महीने और दिन के क्रम को समझता है, सटीक प्रारूप नहीं। आप इसे अपने लिए आजमा सकते हैं। यदि आप 'सेट डेटफॉर्मेट डीएमवाई' कहते हैं, '2011-03-12' तीसरा है। यदि आप 'सेट डेटफॉर्मेट एमडीवाई' सेट करते हैं, तो उसी तारीख को 12 मार्च है। – Thomas

+2

@ जेरीओएल - बीटीडब्ल्यू, मैं 'वाईएमडी' या' वाईडीएम 'भी इस्तेमाल कर सकता था और उसी प्रभाव को हासिल कर सकता था हालांकि मुझे लगता है कि ये प्रारूप केवल उपयोगी हैं यदि आप चार अंकों के वर्ष को पार नहीं कर रहे हैं। – Thomas

8

आप मन GETDATE() में actuall समय मिल गया है, तो आप के लिए समारोह

14

आप एक तालिका में एक datetime स्तंभ की आवश्यकता होगी क्या देख होगा। यदि यह आज की तारीख नहीं है तो आप एक स्ट्रिंग और specify the date format उपयोग करने के लिए सक्षम होना चाहिए

INSERT INTO MyTable (MyDate) Values (GetDate()) 

:

INSERT INTO MyTable (MyDate) Values (Convert(DateTime,'19820626',112)) --6/26/1982 

आप नहीं करते हैं तो फिर आप वर्तमान दिनांक सम्मिलित करने के लिए निम्नलिखित की तरह एक डालने कर सकते हैं हमेशा स्ट्रिंग को कन्वर्ट करने की आवश्यकता होती है, अक्सर आप कुछ ऐसा कर सकते हैं:

INSERT INTO MyTable (MyDate) Values ('06/26/1982') 

और SQL सर्वर आपके लिए यह पता लगाएगा।

'20100301' 

एसक्यूएल सर्वर कई स्वीकार किए जाते हैं तारीख प्रारूपों के लिए अनुमति देता है और यह मामला है कि सबसे अधिक विकास पुस्तकालयों वर्गों की एक श्रृंखला प्रदान करते हैं या होना चाहिए:

-1
myConn.Execute "INSERT INTO DayTr (dtID, DTSuID, DTDaTi, DTGrKg) VALUES (" & Val(txtTrNo) & "," & Val(txtCID) & ", '" & Format(txtTrDate, "yyyy-mm-dd") & "' ," & Val(Format(txtGross, "######0.00")) & ")" 

सभी पाठ प्रकार चर के साथ vb में हो गया।

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