అక్షర స్ట్రింగ్ నుండి తేదీ మరియు / లేదా సమయాన్ని మార్చేటప్పుడు ‘మార్పిడి విఫలమైంది’ లోపం ఎలా పరిష్కరించాలి?



సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి

మీరు కోరుకున్న ఆకృతిలో తేదీలు మరియు సమయాలు కనిపించనప్పుడు చాలా సందర్భాలు ఉన్నాయి, లేదా ప్రశ్న అవుట్పుట్ వీక్షకుల అవసరాలకు సరిపోదు. మీ అవసరానికి అనుగుణంగా తేదీ స్ట్రింగ్‌ను ఫార్మాట్ చేయడానికి అనేక SQL సర్వర్ యొక్క అంతర్నిర్మిత లక్షణాలు ఉన్నాయి, కాని స్ట్రింగ్‌ను SQL సర్వర్ అర్థం చేసుకోవటానికి మరియు మార్పిడి లోపాలను నివారించడానికి ఇది సరైన ఆకృతిలో ఉండాలి. మేము అక్షర స్ట్రింగ్ నుండి తేదీ లేదా సమయాన్ని మార్చడానికి ప్రయత్నించినప్పుడు క్రింది లోపం కొన్నిసార్లు తలెత్తుతుంది. 'అక్షర స్ట్రింగ్ నుండి తేదీ మరియు / లేదా సమయాన్ని మార్చేటప్పుడు మార్పిడి విఫలమైంది.'



తేదీ సమయం మార్పిడి లోపం

మూర్తి 1: అక్షర స్ట్రింగ్ నుండి తేదీ మరియు / లేదా సమయ మార్పిడి లోపం



తేదీ అక్షరాలా సరైనది కానప్పుడు పైన పేర్కొన్న లోపం సాధారణంగా తలెత్తుతుంది మరియు స్ట్రింగ్ నుండి డేట్‌టైమ్ లేదా తేదీగా మార్చలేము. ఈ లోపం అనేక కారణాల వల్ల వస్తుంది, వీటిని మేము పరిష్కార సమితితో పాటు వివరంగా చర్చిస్తాము.



ఉదాహరణ 1:

యునైటెడ్ కింగ్‌డమ్ తేదీ మరియు సమయ సంజ్ఞామానం రోజు-నెల-సంవత్సర ఆకృతిని (జనవరి 10, 2015 లేదా 10/1/2015) ఉపయోగించి తేదీని ప్రదర్శిస్తుంది, ఇది SQL సర్వర్ బిల్డ్_ఇన్ ఫీచర్ “కన్వర్ట్” ఫంక్షన్‌ను ఉపయోగించి ఫార్మాటింగ్ స్టైల్ 103 తో సాధించవచ్చు.

ఇక్కడ ఇచ్చిన ఉదాహరణలో, అందించిన తేదీ స్ట్రింగ్ తప్పు ఆకృతిలో ఉందని మనం చూడవచ్చు. మొదట, ఇది నెల, తరువాత రోజులు మరియు చివరి సంవత్సరంలో అందిస్తుంది, ఇది తప్పు మరియు SQL సర్వర్ చేత అర్థం చేసుకోబడదు, ఇది లోపం ఏర్పడుతుంది. “103” తేదీ శైలిని ఉపయోగించి UK శైలి తేదీ మార్పిడికి సరైన ఫార్మాట్ “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 (datetime2, atedate_time_value, 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' తేదీ_టైమ్_వాల్యూగా తారాగణం (atedate_time_value ని డేట్‌టైమ్ 2 గా) ఎంచుకోండి

మూర్తి 5: 2019 గా పెరిగిన లోపం లీప్ ఇయర్ కాదు, కాబట్టి దీనికి 29 ఫిబ్రవరి తేదీ లేదు

సరైనది:

_Date_time_value varchar (100) = '2019-02-28 21:02:04' తేదీ_ సమయ_వాల్యూగా తారాగణం (atedate_time_value ను డేట్‌టైమ్ 2 గా) ఎంచుకోండి

మూర్తి 6: సరైన తేదీ

ISO 8601 తేదీ ఆకృతి:

తేదీ విలువలను మార్చటానికి అనేక ఫార్మాట్‌లు అందుబాటులో ఉన్నప్పటికీ, గ్లోబల్ / ఇంటర్నేషనల్ మాస్ కోసం పనిచేసేటప్పుడు, డేట్‌టైమ్ ప్రాతినిధ్యాన్ని ఎంచుకోవడం వినియోగ సమస్య. కాబట్టి సంస్కృతి-నిర్దిష్ట తేదీ / సమయ అక్షరాస్యులు మానుకోవాలి. మేము ఈ తేదీని “03/08/2018” గా పరిగణించినట్లయితే, ఇది ప్రపంచంలోని వివిధ ప్రాంతాలలో వివిధ మార్గాలను అనుసరించి వివరించబడుతుంది.

  • UK శైలిలో దీనిని “మార్చి 8, 2018” అని వ్యాఖ్యానిస్తారు
  • యూరోపియన్ శైలిలో దీనిని “3 ఆగస్టు 2018” అని వ్యాఖ్యానించారు

అదృష్టవశాత్తూ, ISO చే అభివృద్ధి చేయబడిన అంతర్జాతీయ తేదీ ఆకృతిలో ఒక ప్రత్యామ్నాయం ఉంది. గ్లోబల్ స్టాండర్డ్ ISO 8601 ఫార్మాట్ “YYYY-MM-DDThh: mm: ss” అనేది స్ట్రింగ్ అక్షరాస్యతలకు మరింత భాష-స్వతంత్ర ఎంపిక మరియు ఇది ఈ సమస్యలన్నింటినీ పరిష్కరిస్తుంది. అయితే, “yyyy” సంవత్సరం, “mm” నెల మరియు “dd” రోజు. కాబట్టి అంతర్జాతీయ ISO ఆకృతిలో “8 మార్చి 2018” తేదీని “2018-03-08” అని వ్రాశారు. అందువల్ల తేదీ ప్రాతినిధ్యానికి ISO ఫార్మాట్ ఉత్తమ ఎంపిక.

Ydate_time_value varchar (100) = '2019-03-28 21:02:04' [yyyy-mm-ddThh: mi: ss.mmm] గా కన్వర్ట్ (డేట్‌టైమ్ 2, @ date_time_value, 126) ఎంచుకోండి.

మూర్తి 7: ఇంటర్నేషనల్ స్టాండర్డ్ ISO 8601 తేదీ ఫార్మాట్

సిఫార్సులు:

తేదీ / సమయ విలువల గురించి సమాజంలో నేను తరచుగా చూసిన గందరగోళాన్ని తొలగించడానికి ఈ వ్యాసం సహాయపడుతుందని ఆశిస్తున్నాను. ఏదేమైనా, తేదీలను వచన-రకం (వర్చార్, చార్, ఎన్వర్చార్, ఎన్చార్, లేదా టెక్స్ట్) లో ఎప్పుడూ నిల్వ చేయవద్దని సిఫార్సు చేయబడింది. తేదీ విలువను ఎల్లప్పుడూ DATE, DATETIME మరియు DATETIME2 (మరింత ఖచ్చితత్వాన్ని అందిస్తుంది) రకం నిలువు వరుసలలో నిల్వ చేయండి మరియు తేదీ సమాచార ఆకృతీకరణను వదిలివేయండి డేటాబేస్ నుండి తిరిగి పొందటానికి బదులుగా యూజర్ ఇంటర్ఫేస్ లేయర్‌కు.

2 నిమిషాలు చదవండి