आपकी समस्या यह है कि आप 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.