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

LINQ में स्ट्रिंग को डेटाटाइम मान में कनवर्ट करें

AsEnumerable के माध्यम से शायद डेटाबेस के बजाय स्थानीय रूप से पार्सिंग करना उचित है :

var query = db.tb1.Select(tb => tb.dt)
                  .AsEnumerable() // Do the rest of the processing locally
                  .Select(x => DateTime.ParseExact(x, "yyyyMMdd",
                                                CultureInfo.InvariantCulture));

प्रारंभिक चयन यह सुनिश्चित करने के लिए है कि संपूर्ण इकाई के बजाय केवल प्रासंगिक कॉलम प्राप्त किया जाता है (केवल इसके अधिकांश को त्यागने के लिए)। मैंने एक अनाम प्रकार का उपयोग करने से भी परहेज किया है क्योंकि ऐसा लगता है कि यहां इसका कोई मतलब नहीं है।

ध्यान दें कि मैंने अपरिवर्तनीय संस्कृति को कैसे निर्दिष्ट किया है - आप लगभग निश्चित रूप से नहीं वर्तमान संस्कृति का उपयोग करना चाहते हैं। और मैंने पार्सिंग के लिए उपयोग किए गए पैटर्न को बदल दिया है, क्योंकि यह आपके स्रोत . जैसा लगता है डेटा yyyyMMdd . में है प्रारूप।

बेशक, यदि संभव हो तो आपको टेक्स्ट के बजाय दिनांक-आधारित कॉलम में दिनांक मानों को संग्रहीत करने के लिए डेटाबेस स्कीमा को बदलना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टी-एसक्यूएल में nvarchar चर के कास्ट संयोजन

  2. DATETIME कॉलम के लिए रैंडम मान

  3. मैं SQL सर्वर 2008 एक्सप्रेस में उसी सर्वर पर SQL सर्वर डेटाबेस को कैसे क्लोन कर सकता हूं?

  4. उपयोगकर्ता डिफ़ॉल्ट डेटाबेस नहीं खोल सकता। लॉगिन विफल। SQL सर्वर प्रबंधन स्टूडियो एक्सप्रेस स्थापित करने के बाद

  5. मैं एक बड़े बफर को बनाए बिना SQL सर्वर BLOB में .NET ऑब्जेक्ट का एक बड़ा ग्राफ कैसे क्रमबद्ध करूं?