如何过滤特定日期的DataTable上的记录?
我尝试过普通[datecol] = #11 March 2010#
和CONVERT([datecol],'System.DateTime') = #11 March 2010#
。没有运气。
MSDN: RowFilter Expression Syntax
[datecol] >= #11 March 2010 00:00# AND [datecol] <= #11 March 2010 23:59:59#
答案 0 :(得分:4)
select
...
...
...
where [datecol] between '11 March 2010 00:00:00' and '11 March 2010 23:59:59'
抱歉,错了。刚写了很多SQL !!
试试这个
[datecol] >= #03/11/2010 00:00:00# AND [datecol] <= #03/11/2010 23:59:59#
或
[datecol] >= '03/11/2010 00:00:00' AND [datecol] <= '03/11/2010 23:59:59'
答案 1 :(得分:1)
select * from [X] WHERE DATEDIFF(dd,[datecol],'3/11/2010') = 0
使用datediff功能有很多权力,
DATEADD(DAY,DATEDIFF(DAY,0,[datecol]),0)
是另一种可以从列中删除时间部分的方法,如果您需要该数据进行其他处理。如果我们想要对白天发生的项目进行分组,或者我们需要对在小时或小时后发生的项目进行分组,我们会使用此方法。
答案 2 :(得分:1)
您可以使用以下LINQ代码根据日期过滤DataTable行集:
var resultSet = from tbl in dt.AsEnumerable()
where tbl.Field<DateTime>("ColName").ToString("dd/MMM/yyyy") == "07/Aug/2010"
select tbl;
此外,要了解DataTables上的基本LINQ查询,请参阅帖子Filtering DataTable using LINQ
最好的Rgds