எழுத்து சரத்திலிருந்து தேதி மற்றும் / அல்லது நேரத்தை மாற்றும்போது ‘மாற்றம் தோல்வியுற்றது’ பிழையை எவ்வாறு சரிசெய்வது?



சிக்கல்களை அகற்ற எங்கள் கருவியை முயற்சிக்கவும்

தேதிகள் மற்றும் நேரங்கள் நீங்கள் விரும்பும் வடிவத்தில் தோன்றாத பல நிகழ்வுகளும் உள்ளன, அல்லது வினவல் வெளியீடு பார்வையாளர்களின் தேவைகளுக்கு பொருந்தாது. உங்கள் தேவைக்கேற்ப தேதி சரத்தை வடிவமைக்க பல SQL சேவையகத்தின் உள்ளமைக்கப்பட்ட அம்சங்கள் உள்ளன, ஆனால் சரம் SQL சேவையகத்தால் விளக்கப்பட வேண்டும் மற்றும் மாற்று பிழைகளைத் தவிர்க்க இது சரியான வடிவத்தில் இருக்க வேண்டும். எழுத்து சரத்திலிருந்து தேதி அல்லது நேரத்தை மாற்ற முயற்சிக்கும்போது பின்வரும் பிழை சில நேரங்களில் எழுகிறது. 'தேதி மற்றும் / அல்லது நேரத்தை எழுத்து சரத்திலிருந்து மாற்றும்போது மாற்றம் தோல்வியடைந்தது.'



தேதி நேர மாற்று பிழை

படம் 1: எழுத்துக்குறி சரத்திலிருந்து தேதி மற்றும் / அல்லது நேர மாற்று பிழை



மேலே குறிப்பிடப்பட்ட பிழை பொதுவாக தேதி சரியாக இல்லாதபோது எழுகிறது மற்றும் சரத்திலிருந்து தேதிநேரம் அல்லது தேதியாக மாற்ற முடியாது. இந்த பிழை பல காரணங்களால் விளைகிறது, அவை தீர்வுத் தொகுப்போடு விரிவாக விவாதிப்போம்.



எடுத்துக்காட்டு 1:

யு.எஸ்.

கீழே உள்ள எடுத்துக்காட்டில், வழங்கப்பட்ட தேதி சரம் தவறான வடிவத்தில் இருப்பதைக் காணலாம். முதலாவதாக, இது மாதத்தையும், பின்னர் நாட்களையும், கடந்த ஆண்டையும் வழங்குகிறது, இது தவறானது மற்றும் பிழையை விளைவிக்கும் SQL சேவையகத்தால் விளக்க முடியாது. “103” தேதி பாணியைப் பயன்படுத்தி இங்கிலாந்து பாணி தேதி மாற்றத்திற்கான சரியான வடிவம் “dd / mm / yyyy”.

தவறான வடிவம்:

_Date_time_value varchar (100) = '10 / 16/2015 21:02:04 'UK_Date_Time_Style ஆக CONVERT (datetime2, atedate_time_value, 103) ஐத் தேர்ந்தெடுக்கவும்

படம் 2: பிழையின் விளைவாக தவறான தேதி வடிவமைப்பு



சரியான வடிவம்:

பிரிட்டிஷ் மற்றும் பிரஞ்சு தேதி வடிவம் 103 = “dd / mm / yyyy” அல்லது 3 = ”dd / mm / yy”. இங்கே 103 மற்றும் 3 தேதி பாணிகள்.

_Date_time_value varchar (100) = '10 / 1/15 21:02:04 'CONVERT ஐத் தேர்வுசெய்க (தேதிநேரம் 2, தேதி_நேர_ மதிப்பு, 103) தேதி_நேர_நேரமாக

படம் 3: “dd / mm / yyyy” பிரிட்டிஷ் / பிரஞ்சு தேதி பாணியுடன் சரியான தேதி வடிவமைப்பு

_Date_time_value varchar (100) = '10 / 1/15 21:02:04 'UK_Date_Time_Style ஆக CONVERT (datetime2, atedate_time_value, 3) ஐத் தேர்ந்தெடுக்கவும்

படம் 4: “dd / mm / yy” பிரிட்டிஷ் / பிரஞ்சு தேதி பாணியுடன் சரியான தேதி வடிவமைப்பு

எடுத்துக்காட்டு 2:

சில நேரங்களில் SQL சேவையகத்தில் தேதி மாற்றுவதற்கான பிழையானது பிழையானது, பயன்படுத்தப்படும் தேதி அல்லது நேர வடிவங்கள் காரணமாக அல்ல, மாறாக, திட்டத்தை ஏற்றுக்கொள்ள முடியாத தவறான தகவல்களை நீங்கள் சேமிக்க முயற்சிக்கிறீர்கள்.

தவறான தேதி:

பின்வரும் பிழைக்கான காரணம், 2019 ஆம் ஆண்டில் “பிப்ரவரி 29” போன்ற தேதி இல்லை, ஏனெனில் அது ஒரு பாய்ச்சல் ஆண்டு அல்ல.

_Date_time_value varchar (100) = '2019-02-29 21:02:04' தேர்ந்தெடுக்கப்பட்ட நடிகர்களை (datedate_time_value datetime2 ஆக) date_time_value என அறிவிக்கவும்

படம் 5: 2019 என எழுப்பப்பட்ட பிழை ஒரு லீப் ஆண்டு அல்ல, எனவே அதற்கு 29 பிப்ரவரி தேதி இல்லை

சரியான ஒன்று:

_Date_time_value varchar (100) = '2019-02-28 21:02:04' தேர்வு_நேரத்தை_நேர_நேர_ மதிப்பை தேதி_நேர_ மதிப்பாக அறிவிக்கவும்

படம் 6: சரியான தேதி

ஐஎஸ்ஓ 8601 தேதி வடிவம்:

தேதி மதிப்புகளைக் கையாளுவதற்கு பல வடிவங்கள் கிடைத்தாலும், உலகளாவிய / சர்வதேச வெகுஜனத்திற்காக பணிபுரியும் போது, ​​தேதிநேர பிரதிநிதித்துவத்தைத் தேர்ந்தெடுப்பது பயன்பாட்டினைப் பற்றிய பிரச்சினையாக இருக்கலாம். எனவே கலாச்சாரம் சார்ந்த தேதி / நேர எழுத்தாளர்கள் தவிர்க்கப்பட வேண்டும். இந்த தேதியை “03/08/2018” என்று நாங்கள் கருதினால், இது உலகின் பல்வேறு பகுதிகளில் வெவ்வேறு வழிகளைப் பின்பற்றுவதில் விளக்கப்படும்.

  • இங்கிலாந்து பாணியில் இது “மார்ச் 8, 2018” என்று விளக்கப்படுகிறது
  • ஐரோப்பிய பாணியில் இது “ஆகஸ்ட் 3, 2018” என்று விளக்கப்படுகிறது

அதிர்ஷ்டவசமாக, ஐஎஸ்ஓ உருவாக்கிய சர்வதேச தேதி வடிவமைப்பில் ஒரு மாற்று உள்ளது. உலகளாவிய நிலையான ஐஎஸ்ஓ 8601 வடிவம் “YYYY-MM-DDThh: mm: ss” என்பது சரம் எழுத்தாளர்களுக்கு மிகவும் மொழி-சுயாதீனமான விருப்பமாகும், மேலும் இது இந்த எல்லா சிக்கல்களையும் தீர்க்கிறது. அதேசமயம், “yyyy” ஆண்டு, “மிமீ” மாதம் மற்றும் “dd” நாள். எனவே சர்வதேச ஐஎஸ்ஓ வடிவத்தில் “மார்ச் 8, 2018” தேதி “2018-03-08” என்று எழுதப்பட்டுள்ளது. தேதி பிரதிநிதித்துவத்திற்கு ஐஎஸ்ஓ வடிவம் சிறந்த தேர்வாகும்.

Ydate_time_value varchar (100) = '2019-03-28 21:02:04' [yyyy-mm-ddThh: mi: ss.mmm] என மாற்றுவதைத் தேர்ந்தெடுக்கவும் (datetime2, @ date_time_value, 126).

படம் 7: சர்வதேச தரநிலை ஐஎஸ்ஓ 8601 தேதி வடிவம்

பரிந்துரைகள்:

தேதி / நேர மதிப்புகள் குறித்து சமூகத்தில் நான் அடிக்கடி கண்ட குழப்பங்களை போக்க இந்த கட்டுரை உதவும் என்று நம்புகிறேன். இருப்பினும், தேதிகளை ஒருபோதும் உரை வகைகளில் (வார்சார், கரி, என்வார்சார், என்சார் அல்லது உரை) சேமிக்க வேண்டாம் என்று பரிந்துரைக்கப்படுகிறது, எப்போதும் தேதி மதிப்பை DATE, DATETIME மற்றும் முன்னுரிமை DATETIME2 (அதிக துல்லியத்தை வழங்குகிறது) வகை நெடுவரிசைகளில் சேமித்து, தேதி தகவல் வடிவமைப்பை விட்டு தரவுத்தளத்திலிருந்து மீட்டெடுக்கப்படுவதற்கு பதிலாக பயனர் இடைமுக அடுக்குக்கு.

2 நிமிடங்கள் படித்தேன்