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

अंकगणित अतिप्रवाह त्रुटि अभिव्यक्ति को डेटा प्रकार डेटाटाइम में परिवर्तित करना। (दिनांक समय प्रदर्शित करते समय ..)

आपकी समस्या यह है कि आप convert करने का प्रयास कर रहे हैं एक datetime के लिए संख्यात्मक , और यह अभी काम नहीं कर रहा है।

आपको अपना numeric चालू करना होगा पहले एक स्ट्रिंग में:

declare @yr_mnth_dt as numeric;
set @yr_mnth_dt = 20130822;

select yr_mnth_dt = cast(cast(@yr_mnth_dt as char(8)) as datetime);

डेमो के साथ SQL Fiddle.

जब आप किसी संख्यात्मक प्रकार को datetime . में बदलने का प्रयास करते हैं , SQL सर्वर संख्यात्मक मान को दिनांक 01-Jan-1900 में दिनों की संख्या के रूप में जोड़ने का प्रयास करता है . आपके मामले में यह लाखों दिन जोड़ने का प्रयास कर रहा है, और इसलिए अतिप्रवाह त्रुटि।

CONVERT यदि आप चाहें तो ठीक भी काम करता है:

select yr_mnth_dt = convert(datetime, convert(char(8), @yr_mnth_dt));

डेमो के साथ SQL Fiddle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर 2008 में एक्सएमएल को सी # से संग्रहीत प्रक्रिया में कैसे पास करें?

  2. SQL सर्वर प्रतीक्षा ईवेंट -3

  3. DatedIFF () SQL सर्वर में गलत परिणाम देता है? इसे पढ़ें।

  4. SQL सर्वर में किसी दिनांक को छोटा करने का सबसे अच्छा तरीका क्या है?

  5. COUNT SQL फ़ंक्शन का प्रदर्शन