2011-11-28 13 views
6

मेरे पास डेटटाइम का डेटा कॉलम है, मैं जानना चाहता हूं कि मेरे पास केवल जल्द ही तिथि (मिनट) और बाद की तारीख (अधिकतम) हो सकती है।डेटाटाइम के डेटाकॉलम में अधिकतम कैसे खोजें?

धन्यवाद

+0

बस एक DataColumn? क्या यह डेटाटेबल या कुछ से जुड़ा हुआ है? –

उत्तर

4

यह देना होगा कि आप क्या देख रहे हैं:

:
// Initial Code for Testing 
DataTable dt = new DataTable(); 

dt.Columns.Add("Dates", typeof(DateTime)); 
dt.Rows.Add(new object[] { DateTime.Now }); 
dt.Rows.Add(new object[] { DateTime.Now.AddDays(1) }); 
dt.Rows.Add(new object[] { DateTime.Now.AddDays(2) }); 

इस कोड को आप का प्रयोग करेंगे है

+1

आपका दृष्टिकोण सर्वोत्तम दिखता है :) –

0

बस अपने DataColumn से दिनांक समय की एक सूची पुनर्प्राप्त, अपने DataColumn में Foreach पंक्ति दिनांक समय की अपनी सूची में वर्तमान तत्व जोड़।

List<DateTime> और Sort विधि का उपयोग करें, तो पहले और अंतिम मान प्राप्त करें। , अपने ढांचा संस्करण की

निर्भर करता है ऊपर 2.0 उपयोग के लिए >=3.5 आप Max और Min या LINQ .OrderByDesc(p => p.X).FirstOrDefault(); के साथ अपने दिनांक समय सूची पर उपयोग कर सकते हैं के लिए

+1

एक बार आपके पास सूची <> हो सकता है आप मैक्स() और न्यूनतम() का उपयोग भी कर सकते हैं। लेकिन मुझे लगता है कि यह सूची प्राप्त करने के बारे में है। –

+0

@ हेनक, आप उन तरीकों को कहां पाते हैं? अधिकतम() और न्यूनतम()। –

+0

लिंक-टू-ऑब्जेक्ट्स –

0
DataTable dt = new DataTable("MyDataTable"); 
DataColumn dc = new DataColumn("DateColumn"); 
dc.DataType = typeof(DateTime); 
dt.Columns.Add(dc); 
for (int i = 0; i <= 5; i++) 
{ 
    DataRow newRow = dt.NewRow(); 
    newRow[0] = DateTime.Now.AddDays(i); 
    dt.Rows.Add(newRow); 
} 

DateTime maxDate = 
    Convert.ToDateTime(
         ((from DataRow dr in dt.Rows 
          orderby Convert.ToDateTime(dr["DateColumn"]) descending 
          select dr).FirstOrDefault()["DateColumn"] 
         ) 
         ); 

DateTime minDate = 
    Convert.ToDateTime(
         ((from DataRow dr in dt.Rows 
          orderby Convert.ToDateTime(dr["DateColumn"]) ascending 
          select dr).FirstOrDefault()["DateColumn"] 
         ) 
         ); 
10
object maxDate = dataTable.Compute("MAX(TheDateColumnName)", null); 
object minDate = dataTable.Compute("MIN(TheDateColumnName)", null); 
2

केली से जवाब देने के लिए जोड़ने के लिए, यह आसान नहीं है करने के लिए सिर्फ कार्य करें:

var first = tbl.AsEnumerable() 
       .Max(r => r.Field<DateTime>(col.ColumnName)); 

और

var first = tbl.AsEnumerable() 
       .Min(r => r.Field<DateTime>(col.ColumnName)); 
संबंधित मुद्दे