Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

त्रुटि - SqlDateTime अतिप्रवाह। 1/1/1753 12:00:00 पूर्वाह्न और 12/31/9999 11:59:59 अपराह्न के बीच होना चाहिए

एक DateTime सी # में एक मान प्रकार है, संदर्भ प्रकार नहीं है, और इसलिए शून्य नहीं हो सकता है। हालांकि यह स्थिर DateTime.MinValue . हो सकता है जो Sql सर्वर की सीमा से बाहर है DATETIME डेटा प्रकार।

मूल्य प्रकारों को हमेशा स्पष्ट रूप से सेट किए बिना (इस मामले में DateTime.MinValue) के बिना हमेशा एक (डिफ़ॉल्ट) मान (शून्य का) होने की गारंटी दी जाती है।

निष्कर्ष यह है कि आपके पास शायद एक अनसेट डेटटाइम मान है जिसे आप डेटाबेस में पास करने का प्रयास कर रहे हैं।

DateTime.MinValue = 1/1/0001 12:00:00 AM
DateTime.MaxValue = 23:59:59.9999999, December 31, 9999, 
                    exactly one 100-nanosecond tick 
                    before 00:00:00, January 1, 10000

MSDN:DateTime.MinValue

Sql सर्वर के संबंध में

MSDN:Sql Server DateTime and SmallDateTime

अंत में, यदि आप स्वयं को C# DateTime . पास करते हुए पाते हैं एसक्यूएल के लिए एक स्ट्रिंग के रूप में, आपको अधिकतम सटीकता बनाए रखने और एसक्यूएल सर्वर को एक समान त्रुटि फेंकने से रोकने के लिए इसे निम्नानुसार प्रारूपित करने की आवश्यकता है।

string sqlTimeAsString = myDateTime.ToString("yyyy-MM-ddTHH:mm:ss.fff");

अपडेट (8 साल बाद)

sql DateTime2 . का उपयोग करने पर विचार करें डेटाटाइप जो .net DateTime . के साथ बेहतर तरीके से संरेखित होता है दिनांक सीमा के साथ 0001-01-01 through 9999-12-31 और समय सीमा 00:00:00 through 23:59:59.9999999 . तक

string dateTime2String = myDateTime.ToString("yyyy-MM-ddTHH:mm:ss.fffffff");

MSDN datetime2 (Transact-SQL)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pyodbc:क्षणिक त्रुटियों से पुनर्प्राप्त करने के लिए पुन:प्रयास कैसे करें?

  2. ISNUMERIC('.') 1 क्यों लौटाता है?

  3. SQL में रिकॉर्ड के पहले अक्षर को कैपिटल कैसे करें

  4. एसक्यूएल में औसत को गोल करते समय मैं दशमलव कैसे प्राप्त करूं

  5. SQL सर्वर (T-SQL) में डेटाबेस मेल प्रोफाइल की सूची लौटाएं