मेरे पास मेरी तालिका में DateTime
कॉलम है।लिंक से SQL में डेटाटाइम कॉलम से महीना नाम कैसे प्राप्त करें?
Linq में SQL क्वेरी के लिए, मैं सिर्फ उस क्षेत्र
कैसे है कि के लिए Linq क्वेरी लिखने के लिए का महीना भाग की ज़रूरत है?
मेरे पास मेरी तालिका में DateTime
कॉलम है।लिंक से SQL में डेटाटाइम कॉलम से महीना नाम कैसे प्राप्त करें?
Linq में SQL क्वेरी के लिए, मैं सिर्फ उस क्षेत्र
कैसे है कि के लिए Linq क्वेरी लिखने के लिए का महीना भाग की ज़रूरत है?
कुछ की तरह:
string monthName = dataContext.GetTable<TableName>()
.FirstOrDefault(t => t.DateTimeColumn)
.ToString("MMM");
ठीक है, तीन विकल्प मैं तुरंत के बारे में सोच सकते हैं: वापस खींचो पूरे DateTime
DateTime.Month
का उपयोग करें, फिर इसे क्लाइंट-साइडव्यक्तिगत तौर पर मैं नहीं तीसरे विकल्प की कोशिश करेगा पर काम करने की - यह मेरे लिए लगता है जैसे यह काम करने के लिए, कम से कम प्रयास का एक बहुत बिना संभावना बहुत कम है।
मुझे लगता है मैं चाहते वास्तव में सिर्फ DateTime
वापस खींच, और सब कुछ क्लाइंट साइड से करते हैं। ऐसा करना बहुत आसान है, और यह काम करने के लिए बाध्य है। मुझे उम्मीद है कि DateTime.Month
शायद काम करेगा, लेकिन आप बहुत अधिक नेटवर्क बैंडविड्थ सहेजने वाले नहीं हैं, और आपको सर्वर ऐसा करने के लिए मिल जाएगा जो क्लाइंट के लिए संभवतः उतना ही आसान है।
ध्यान दें कि यदि आप अभी भी एक प्रश्न के रूप में परिणाम चाहते हैं, तो आप शेष क्वेरी को क्लाइंट-साइड करने के लिए AsEnumerable
का उपयोग कर सकते हैं। उदाहरण के लिए:
var query = db.Customers
.Where(c => c.OrderCount > 500) // Or whatever query you want
.Select(c => new { c.Name, c.FirstOrder })
.AsEnumerable() // Do the rest of the query on the client
.Select(c => new { c.Name, c.Month = c.FirstOrder.ToString("MMM") });
संपादित करें: के रूप में टिप्पणी में बताया गया है, यह सर्वर साइड पर DateTime.Month
उपयोग करने के लिए करता है, तो यह वास्तव में परिणाम, उदा को प्रभावित करेगा समझ में आता है
var query = db.Customers.Where(c => c.FirstOrder.Month == 1)
...
... लेकिन उन मामलों में मैं इसे संख्यात्मक मान जो महत्वपूर्ण है, नहीं नाम महीने के है होने की उम्मीद थी।
दूसरा विकल्प अच्छा है यदि आप महीने में फ़िल्टर करना चाहते हैं, लेकिन चयन में पहला विकल्प +1 – rfcdejong
@rfcdejong के लिए जाना ठीक है: हाँ, अच्छा बिंदु - संपादित होगा। –