最小值和最大值数据形成数据表

本文关键字:数据表 数据 最大值 最小值 | 更新日期: 2023-09-27 17:49:41

我有四列数据表:Date, isin, PriceState
我需要从Date列获得最小和最大日期。
我使用这个代码,它的工作很好与一个文件,但与其他文件它显示我错误的最大日期。

 DateTime stDate = Convert.ToDateTime((excleTable.Compute("min(date)", string.Empty)));
 DateTime eDate = Convert.ToDateTime((excleTable.Compute("max(date)", string.Empty)));

例如,在第一行我有02/27/2015,在最后一行我有03/31/2015,但它只读到03/09/2015,这是不正确的。
有什么主意吗?

最小值和最大值数据形成数据表

看起来您的列类型不是DateTime。如果你能解决这个问题,确保你的DataTableDateTime类型的列date,否则你可以使用LINQ的MaxMin,并将你的列转换为DateTime,如:

DateTime stDate =  dt.AsEnumerable()
                     .Max(r => Convert.ToDateTime(r.Field<string>("date")));
DateTime eDate =  dt.AsEnumerable()
                     .Min(r => Convert.ToDateTime(r.Field<string>("date")));

如果您的字符串值不对应于默认/可用的DateTime格式,则可能必须使用DateTime.ParseExact转换为DateTime,例如:

DateTime stDate =  dt.AsEnumerable()
    .Max(r => DateTime.ParseExact(r.Field<string>("date"), 
                                    "MM/dd/yyyy", 
                                    CultureInfo.InvariantCulture));