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

दिनांक स्ट्रिंग को बदलने और मान्य करने का सबसे अच्छा तरीका

सबसे पहले, चूंकि आप SQL सर्वर 2005 का उपयोग कर रहे हैं, आपको अपना कोड डालना चाहिए जो हो सकता है BEGIN TRY.....END TRY BEGIN CATCH....END CATCH में विफल ब्लॉक - टी-एसक्यूएल के लिए प्रयास/पकड़ ब्लॉक!

दूसरा, सभी दिनांक हेरफेर के लिए, मैं हमेशा ISO-8601 प्रारूप का उपयोग करें जो SQL सर्वर में वर्तमान दिनांक प्रारूप सेट किए बिना काम करेगा।

ISO-8601 प्रारूप YYYYMMDD है केवल तिथियों के लिए, या YYYY-MM-DDTHH:MM:SS समय के साथ तारीख के लिए - इसलिए मैं आपका कोड इस प्रकार लिखूंगा:

BEGIN TRY
  SET @Source='07152009'
  SET @Temp = RIGHT(@Source, 4) +             -- YYYY
              LEFT(@Source, 2) +              -- MM
              SUBSTRING(@Source, 3, 2)        -- DD

  IF ISDATE(@Temp)!=1
  BEGIN
      RAISERROR('ERROR, invalid date',16,1)
  END

  SET @Destination = CAST(@Temp AS DATETIME)
END TRY
BEGIN CATCH
      -- handle error if something bombs out
END CATCH

किसी विशेष तिथि प्रारूप के सेट होने पर भरोसा न करें !! मुझे अपना कोड भेजें और मैं इसे स्विस-जर्मन सिस्टम पर आज़माऊंगा - मैं लगभग गारंटी देता हूं कि अगर आप आँख बंद करके "एन-यूएस" मान लेते हैं और इस प्रकार "mm/dd/yyyy" मान लेते हैं तो यह टूट जाएगा - यह नहीं इस ग्रह पर हर जगह एक ही सेटिंग।

दुर्भाग्य से SQL सर्वर कमजोर हैंडलिंग तिथियां हैं - शायद यह एक विस्तार बिंदु हो सकता है जहां SQL सर्वर के अंदर एक सीएलआर असेंबली का उपयोग करना समझ में आता है, .NET में अधिक समृद्ध दिनांक प्रबंधन कार्यों में टैप करने के लिए ??

मार्क

पुनश्च:ऐसा लगता है कि ISO-8601 प्रारूप मुझे पता था कि YYYY-MM-DD हमेशा SQL सर्वर में काम नहीं करता है - इसके विपरीत जो पुस्तकें ऑनलाइन प्रचार करती प्रतीत होती हैं। इसके बजाय YYYYMMDD या YYYY-MM-DDTHH:MM:SS का उपयोग करें।
धन्यवाद, जीबीएन!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql कथनों में वर्ग कोष्ठक [] का क्या उपयोग है?

  2. java.sql.SQLException:jdbc के लिए कोई उपयुक्त ड्राइवर नहीं मिला:Microsoft:sqlserver

  3. SQL सर्वर में दिनांक और समय के साथ कार्य करते समय समस्याओं का निवारण

  4. SQL सर्वर में APPROX_COUNT_DISTINCT () कैसे काम करता है

  5. SQL सर्वर में 'sp_server_info' संग्रहीत कार्यविधि का उपयोग कैसे करें