Warm tip: This article is reproduced from stackoverflow.com, please click
c# datetime max datacolumn

how to find the max in a datacolumn of datetime?

发布于 2020-04-23 11:45:56

I have a DataColumn of DateTime, I would like to know how I can have only the sooner date (min) and the later date (max).

Thanks

Questioner
francops henri
Viewed
11
Kyle Rozendo 2011-11-29 01:15

This would give what you are looking for:

// 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) });

This is the code you would use:

// Actual Code
DataColumn col = dt.Columns[0]; // Call this the one you have

DataTable tbl = col.Table;

var first = tbl.AsEnumerable()
               .Select(cols => cols.Field<DateTime>(col.ColumnName))
               .OrderBy(p => p.Ticks)
               .FirstOrDefault();

var last = tbl.AsEnumerable()
              .Select(cols => cols.Field<DateTime>(col.ColumnName))
              .OrderByDescending(p => p.Ticks)
              .FirstOrDefault();