当日期被分解为2个整数时,按日期过滤的最佳方法是什么,月和&年?

时间:2010-11-03 17:22:54

标签: datetime ado.net datatable filter

我有一个DataTable,其日期按月分类年。我需要按日期过滤,所以我在考虑添加一个带有表达式的列来获取真正的DateTime列。这是处理这个问题的最佳方法吗? '转换'可以这样做吗?有点像...

dt.Columns.Add("RealDate", typeof(DateTime), "Convert(Month + '/1/' + Year, 'System.DateTime')");

2 个答案:

答案 0 :(得分:1)

我会在填充DataTable的SQL中执行转换。这可能是内联SQL,存储过程或ORM。

让数据库引擎完成工作。不要花费大量资源在您的应用中执行这些转换和计算。

编辑:如果无法改变生成DataTable的过程,可以使用DataView RowFilter进行过滤,如下所示:

DataView dataView = dataTable1.DefaultView;
dataView.RowFilter = string.Format("Month = '{0}' && Year = '{1}'", Month, Year);

Here's a terrific page of examples, with demos and code

答案 1 :(得分:0)

由于没有人回答,我将重申我使用的代码:

dt.Columns.Add("RealDate", typeof(DateTime), "Convert(Month + '/1/' + Year, 'System.DateTime')");