最小和最大数据形式 Data Table
Minimum and maximum data form Data Table
我有包含四列的数据 Table:Date
、isin
、Price
和 State
。
我需要从 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
。如果您可以修复该问题,请确保您的 DataTable
具有 DateTime
列 date
类型,否则您可以使用 LINQ 的 Max
和 Min
并转换您的列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")));
如果您的字符串值不符合 default/available DateTime
格式,您可能必须使用 DateTime.ParseExact
转换为 DateTime
,例如:
DateTime stDate = dt.AsEnumerable()
.Max(r => DateTime.ParseExact(r.Field<string>("date"),
"MM/dd/yyyy",
CultureInfo.InvariantCulture));
我有包含四列的数据 Table:Date
、isin
、Price
和 State
。
我需要从 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
。如果您可以修复该问题,请确保您的 DataTable
具有 DateTime
列 date
类型,否则您可以使用 LINQ 的 Max
和 Min
并转换您的列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")));
如果您的字符串值不符合 default/available DateTime
格式,您可能必须使用 DateTime.ParseExact
转换为 DateTime
,例如:
DateTime stDate = dt.AsEnumerable()
.Max(r => DateTime.ParseExact(r.Field<string>("date"),
"MM/dd/yyyy",
CultureInfo.InvariantCulture));