[英]Selecting rows from DataTable by DateTime column (hours)
DatarowsForOneDay = dt.Select(
dt.Columns[0].Caption + "='" + x.ToString("dd/MM/yyyy HH") + "'");
不起作用,但是
DatarowsForOneDay = dt.Select(
dt.Columns[0].Caption + "='" + x.ToString("dd/MM/yyyy") + "'");
作品。
那么如何选择同一小时的日期呢?
变量x
类型为DateTime
。
.Select
方法接受具有与DataColum.Expression
使用的语法相同的语法的过滤器表达式。 您可以检查MSDN条目以获取详细信息:
如果LINQ可用,您可以执行以下操作:
DataTable dt = new DataTable();
dt.Columns.Add("DT", typeof(DateTime));
foreach (var item in Enumerable.Range(1, 20))
{
dt.Rows.Add(new DateTime(2010, 3, 10, item, 20, 10));
}
DataRow[] rows = dt.Rows.Cast<DataRow>().Where(dr =>
((DateTime)dr["DT"]).ToString("yyyy-MM-dd HH") == "2010-03-10 10")
.ToArray();
Console.WriteLine(rows.Length);
您可以使用此代码。 迭代DataTable
所有行,并根据相同的日期和小时将其添加到searchRecords
List中。
List<DataRow> searchRecords = new List<DataRow>();
string searchDateOnHour = DateTime.Now.ToString("dd/MM/yyyy HH");
foreach (DataRow item in table.Rows)
{
DateTime recordDate;
DateTime.TryParse(item["comDate"].ToString(), out recordDate);
string recordDateHour = recordDate.ToString("dd/MM/yyyy HH");
if (searchDateOnHour == recordDateHour)
searchRecords.Add(item);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.