दिलचस्प पोस्ट
प्रत्येक समूह का अधिकतम मूल्य चुनें IE8 पर पहुँच प्राप्त करने से त्रुटि को वंचित नहीं किया गया है JSF2.0 से दृश्य परिभाषा भाषा के रूप में जेएसपी पर क्यों फेसलेट पसंदीदा हैं? जावा का उपयोग करके स्लैश को अग्रेषित करने के लिए पिछड़े स्लैश को कैसे बदलें? bash – स्वचालित रूप से अंतिम निष्पादित कमांड को एक चर में स्वतः कैप्चर करते हैं क्या एचटीएमएल 5 मार्गों का उपयोग करते समय काजल 2 के राउटर का टूटना है? मैं पृष्ठभूमि सेवा के रूप में एक नोड। Js ऐप कैसे चला सकता हूं? आप jQuery में एक तत्व "फ्लैश" कैसे बनाते हैं करीब सौ अंक के लिए एक पूर्णांक कैसे गोल करना है? कई तत्वों में कोणीय.जेएस एनजी-दोहराएं जावास्क्रिप्ट में एकल प्लस ऑपरेटर एक constexpr सरणी अनिवार्य रूप से इस्तेमाल किया है जब subscripted? प्रत्येक variadic टेम्पलेट तर्क और एक सरणी के लिए एक समारोह कॉलिंग EditText कर्सर रंग सेट करें चेकबॉक्स ऑटो कॉल पर चेक किया गया जब सूची दृश्य स्क्रॉल होता है?

एसक्यूएल – डेराटाइम डाटा प्रकार के लिए एक varchar डेटा प्रकार का रूपांतरण एक आउट-ऑफ-रेंज वैल्यू के परिणामस्वरूप हुआ

varchar से datetime तक मेरा डेटा प्रकार मान बदलने के लिए SQL चलाते समय मुझे निम्नलिखित त्रुटि मिलती रही है I

संदेश 242, स्तर 16, राज्य 3, रेखा 1 एक varchar डेटा प्रकार को एक datetime डेटा प्रकार के रूपांतरण के परिणामस्वरूप आउट-ऑफ़-रेंज मूल्य प्राप्त हुआ।

मैंने डेटा की जांच की है और कुछ भी अजीब नहीं देख पा रहा है: निम्नलिखित चेक चलाएं और सभी कोई परिणाम नहीं लौट रहे हैं

 SELECT [Date] from table where [DATe] is null SELECT [Date] from table where [DATe] = '' SELECT [Date] from table where LEN([date])> 10 SELECT [Date] from table where LEN([date])< 10 SELECT top 100 [Date] , SUBSTRING([date],4,2) from [table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 12 SELECT top 100 [Date] , SUBSTRING([date],1,2) from table where convert(int, SUBSTRING([date],4,2)) < 1 or convert(int, SUBSTRING([date],4,2)) > 31 

क्या कोई अन्य चीज को देखने के लिए और संभवतः किसी भी संकेत या इस मुद्दे के साथ मदद के लिए है? इसके नीचे पाने के लिए प्रतीत नहीं हो सकता

Solutions Collecting From Web of "एसक्यूएल – डेराटाइम डाटा प्रकार के लिए एक varchar डेटा प्रकार का रूपांतरण एक आउट-ऑफ-रेंज वैल्यू के परिणामस्वरूप हुआ"

मुझे एक हफ्ते पहले एक ही समस्या का सामना करना पड़ा। समस्या समय क्षेत्र सेटिंग के साथ है अन्य प्रारूपों में निर्दिष्ट करें जैसे मीम / डीडी / याय (आमतौर पर काम करता है)

दिनांक को 30/12/2013 के रूप में निर्दिष्ट करते हुए मेरे लिए त्रुटि हुई। हालांकि, इसे मिमी / dd / yyyy प्रारूप के रूप में निर्दिष्ट करते हुए काम किया।

यदि आपको अपने इनपुट को बदलने की आवश्यकता है तो आप CONVERT विधि में देखने का प्रयास कर सकते हैं। सिंटैक्स है

CONVERT(VARCHAR,@your_date_Value,103)

CONVERT(VARCHAR, '12/30/2013', 103)

परिष्करण 103 दिनांक समय प्रारूप है

रूपांतरण प्रारूपों और आगे पढ़ने के लिए इस लिंक को देखें। http://www.w3schools.com/sql/func_convert.asp

मैं एक मूर्खतापूर्ण गलती के कारण इस मुद्दे पर गया। सुनिश्चित करें कि तिथि वास्तव में मौजूद है!

उदाहरण के लिए:

31 सितंबर, 2015 मौजूद नहीं है

 EXEC dbo.SearchByDateRange @Start = '20150901' , @End = '20150931' 

इसलिए यह संदेश के साथ विफल रहता है:

 Error converting data type varchar to datetime. 

इसे ठीक करने के लिए, एक मान्य तारीख इनपुट करें:

 EXEC dbo.SearchByDateRange @Start = '20150901' , @End = '20150930' 

और यह सिर्फ ठीक निष्पादित करता है।

 Create procedure [dbo].[a] @examdate varchar(10) , @examdate1 varchar(10) AS Select tbl.sno,mark,subject1, Convert(varchar(10),examdate,103) from tbl where (Convert(datetime,examdate,103) >= Convert(datetime,@examdate,103) and (Convert(datetime,examdate,103) <= Convert(datetime,@examdate1,103))) 

मेरे पास एक ही समस्या है और यह निर्धारित किया गया है कि यह समस्या उत्पन्न होती है क्योंकि SQL सर्वर समान तरीके से पूर्णांक में कनवर्ट किए गए वर्णों पर तुलना नहीं करता है। मेरे परीक्षण में, मैंने पाया है कि कनवर्ट किए गए पात्रों की कुछ तुलना, जैसे विस्मयादिबोधक बिंदु, प्रकार रूपांतरण त्रुटियां लौटाएंगे, जबकि कनवर्ट किए गए पात्रों की अन्य तुलना, जैसे अंतरिक्ष, सीमा से बाहर होने के लिए निर्धारित किया जाएगा।

यह नमूना कोड भिन्न संभव परिदृश्यों की जांच करता है और नेस्टेड रीप्लेस स्टेटमेंट का उपयोग करके एक समाधान प्रस्तुत करता है। REPLACE निर्धारित करता है कि क्या स्ट्रिंग में कोई अक्षर हैं जो संख्याएं या स्लेश नहीं हैं, और यदि कोई मौजूद है, तो स्ट्रिंग की लंबाई शून्य से अधिक होगी, जिससे यह इंगित करता है कि 'खराब' वर्ण हैं और तारीख अमान्य है ।

 DECLARE @str varchar(10) SET @str = '12/10/2012' IF convert(int, substring(@str,4,2)) <= 31 AND convert(int, substring(@str,4,2)) >= 1 PRINT @str+': Passed Test' ELSE PRINT @str+': Failed Test' GO DECLARE @str varchar(10) SET @str = '12/10/2012' PRINT 'Number of characters in ' + @str + ' that are not numerals or a slash (0 means the date is valid; all values greater than 0 indicate a problem): ' + convert(varchar(5),len(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(@str,'0',''),'1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''), '8',''),'9',''),'/',''),' ','+'))) --replace space with a + to avoid empty string PRINT '' GO DECLARE @str varchar(10) SET @str = '12/!0/2012' IF convert(int, substring(@str,4,2)) <= 31 AND convert(int, substring(@str,4,2)) >= 1 PRINT @str+': Passed Test' ELSE PRINT @str+': Failed Test' GO DECLARE @str varchar(10) SET @str = '12/!0/2012' PRINT 'Number of characters in ' + @str + ' that are not numerals or a slash (0 means the date is valid; all values greater than 0 indicate a problem): ' + convert(varchar(5),len(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(@str,'0',''),'1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''), '8',''),'9',''),'/',''),' ','+'))) --replace space with a + to avoid empty string PRINT '' GO DECLARE @str varchar(10) SET @str = '12/ /2012' IF convert(int, substring(@str,4,2)) <= 31 AND convert(int, substring(@str,4,2)) >= 1 PRINT @str+': Passed Test' ELSE PRINT @str+': Failed Test' GO DECLARE @str varchar(10) SET @str = '12/ /2012' PRINT 'Number of characters in ' + @str + ' that are not numerals or a slash (0 means the date is valid; all values greater than 0 indicate a problem): ' + convert(varchar(5),len(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(@str,'0',''),'1',''),'2',''),'3',''),'4',''),'5',''),'6',''),'7',''), '8',''),'9',''),'/',''),' ','+'))) --replace space with a + to avoid empty string 

आउटपुट:

 --Output --12/10/2012: Passed Test --Number of characters in 12/10/2012 that are not numerals or a slash (0 means the date is valid; all values greater than 0 indicate a problem): 0 --Msg 245, Level 16, State 1, Line 4 --Conversion failed when converting the varchar value '!0' to data type int. --Number of characters in 12/!0/2012 that are not numerals or a slash (0 means the date is valid; all values greater than 0 indicate a problem): 1 --12/ /2012: Failed Test --Number of characters in 12/ /2012 that are not numerals or a slash (0 means the date is valid; all values greater than 0 indicate a problem): 2 

मुझे भी इस समस्या का सामना करना पड़ रहा है, जबकि एक कॉलम के लिए ऑटो को सम्मिलित करना।

मैंने क्या किया है, मैं अपने सिस्टम दिनांक प्रारूप को SQL सर्वर के दिनांक स्वरूप के साथ मिलान करने के लिए बदल दिया है। जैसे मेरी एसक्यूएल प्रारूप mm / dd / yyyy था और मेरा सिस्टम प्रारूप dd / mm / yyyy पर सेट किया गया था। मैंने अपने सिस्टम स्वरूप को मिमी / दिन / याय में बदल दिया और चूक गई

-kb

मुझे हाल ही में इसी तरह की समस्या थी। ऐप्प और डेटाबेस सर्वर में क्षेत्रीय सेटिंग्स दोनों को ठीक से सेटअप किया गया था। हालांकि, एसक्यूएल के निष्पादन के परिणामस्वरूप

"एक varchar डेटा प्रकार का एक datetime डेटा प्रकार के रूपांतरण का परिणाम एक आउट-ऑफ-रेंज मान" में हुआ।

समस्या डीबी उपयोगकर्ता की डिफ़ॉल्ट भाषा थी

इसे SSMS में जांच या बदलने के लिए सुरक्षा -> लॉगिन पर जाएं और क्वेरीज़ चलाने वाले उपयोगकर्ता के उपयोगकर्ता नाम पर राइट-क्लिक करें गुणों का चयन करें -> सामान्य और सुनिश्चित करें कि डायलॉग के निचले भाग में डिफ़ॉल्ट भाषा आपकी अपेक्षा की जाती है

प्रश्नों को चलाने वाले सभी उपयोगकर्ताओं के लिए इसे दोहराएं।

 + this happens because sql sometimes doesn't recognize dd/mm/yyyy format + so we should always check if the input string is a valid date or not and the accordingly convert it to mm/dd/yyyy and so , i have shown below how it can be done, i have created a function to rearrange in mm/dd/yyyy from dd/mm/yyyy select case when isdate('yourdate')=1 then CAST('yourdate' AS datetime) else (select * from dbo.fn_convertdate(yourdate)) Create function dbo.fn_convertdate( @Stringdate nvarchar(29)) RETURNS @output TABLE(splitdata NVARCHAR(MAX) ) Begin Declare @table table(id int identity(1,1), data varchar(255)) Declare @firstpart nvarchar(255) Declare @tableout table(id int identity(1,1), data varchar(255)) Declare @Secondpart nvarchar(255) Declare @Thirdpart nvarchar(255) declare @date datetime insert into @table select * from dbo.fnSplitString(@Stringdate,'/') select @firstpart=data from @table where id=2 select @Secondpart=data from @table where id=1 select @Thirdpart=data from @table where id=3 set @date=@firstpart+'/'+@Secondpart+'/'+@Thirdpart insert into @output(splitdata) values( @date) return End 

मैंने बस varchar फ़ील्ड को परिवर्तित किया है कि मैं एक नई तालिका (एक दिनांकित समय के साथ दायर की गई) को डेटटाइम संगत लेआउट में पहले कनवर्ट करना चाहता था, और फिर एसक्यूएल बिना किसी समस्या के तिथि के समय में वर्चार से रूपांतरण कर सकता है।

नीचे (उन नामों के साथ मेरी बनाई गई तालिका नहीं!) मैं बस वर्चार फ़ील्ड को डेटटाइम लुकलिक बनने के लिए बना देता हूं यदि आप चाहते हैं:

 update report1455062507424 set [Move Time] = substring([Move Time], 7, 4) + '-'+ substring([Move Time], 4, 2) + '-'+ substring([Move Time], 1, 2) + ' ' + substring([Move Time], 12, 5) 

जैसा कि आप जानते हैं यह यूके प्रारूप समस्या है आप फ़ंक्शन का उपयोग करके अप्रत्यक्ष रूप से तिथि रूपांतरण कर सकते हैं।

 CREATE FUNCTION ChangeDateFormatFromUK ( @DateColumn varchar(10) ) RETURNS VARCHAR(10) AS BEGIN DECLARE @Year varchar(4), @Month varchar(2), @Day varchar(2), @Result varchar(10) SET @Year = (SELECT substring(@DateColumn,7,10)) SET @Month = (SELECT substring(@DateColumn,4,5)) SET @Day = (SELECT substring(@DateColumn,1,2)) SET @Result = @Year + '/' @Month + '/' + @Day RETURN @Result END 

इस फ़ंक्शन को कॉल करने के लिए

 SELECT dbo.ChangeDateFormatFromUK([dates]) from table 

सामान्य रूप से इसे समय-समय पर कनवर्ट करें

 SELECT CONVERT(DATETIME,dbo.ChangeDateFormatFromUK([dates])) from table 

आपके मामले में, आप ऐसा कर सकते हैं

 SELECT [dates] from table where CONVERT(DATETIME,dbo.ChangeDateFormatFromUK([dates])) > GetDate() -- or any date 
 Varchar Date Convert to Date and Change the Format 

12 नवंबर, 2016 12:00, 21/12/2016, 21-12-2016 इसके बाद के संस्करण के लिए इस क्वेरी का प्रारूप इस प्रारूप में बदलने के लिए डीडी / एमएम / SELECT [Member_ID],[Name] , Convert(varchar(50),Convert(date,[DOB],103),103) as DOB ,[NICNO],[Relation] FROM [dbo].[tbl_FamilMember]

साल के लिए टेस्ट> 2079. मुझे पता चला कि एक उपयोगकर्ता वर्ष 2016 की बजाय 2016 (210/12/2106) और बूम की तुलना में 2106 का टाइपो। इसलिए 10/12/2016 को मैंने परीक्षण किया और पाया कि SQL सर्वर ने 2078 तक स्वीकार किया, उस त्रुटि को फेंकने के लिए, यदि वर्ष 2079 या अधिक है मैंने किस तरह की तारीख स्लाइडिंग SQL सर्वर करता है के रूप में कोई और शोध नहीं किया है

आप इसका उपयोग कर सकते हैं

 Set dateformat <date-format> ; 

आप में कार्य करने के लिए एसपी फ़ंक्शन या संग्रहीत कार्यप्रणाली

यह त्रुटि मेरे लिए हुई क्योंकि मैं सीलाइन कोड से सीलाइन क्वेरी से सीधे कॉलम में न्यूनतम दिनांक और समय को स्टोर करने की कोशिश कर रहा था।

दिनांक वैरिएबल 01/01/0001 12:00:00 पूर्वाह्न को दिए गए कोड में निर्धारित किया गया था कि सी # में दिनांकटाइम इस दिनांक और समय के साथ आरम्भिक रूप से आरंभ किया जाता है यदि वह नहीं सेट किया गया हो और एमएस-एसक्यूएल 2008 दिनांकित डेटाटाइप में अनुमत न्यूनतम संभव तारीख 1753-01-01 12:00:00 पूर्वाह्न है।

मैंने तिथि से कोड को बदल दिया और इसे 01/01/1900 पर सेट कर दिया और कोई भी त्रुटियों की सूचना नहीं दी गई।

मैंने एक तिथि पर ToString () का उपयोग मिमी के बजाय मिमी के साथ किया था।

बस सुनिश्चित करें कि आपकी तिथियां संगत हों या आपके डेटाबेस प्रबंधक (जैसे एसक्यूएल सर्वर मैनेजमेंट स्टूडियो) में ठीक से चल सकें। उदाहरण के लिए, DateTime.Now सी # फ़ंक्शन SQL सर्वर में अमान्य है जिसका अर्थ है कि आपकी क्वेरी में SQL सर्वर के लिए GETDATE () जैसे मान्य फ़ंक्शन शामिल करना होगा।

इस बदलाव ने मेरे लिए पूरी तरह से काम किया है