DataTable.RowFilter を使用して時間を無視して日付でフィルタリングする
-
19-09-2019 - |
質問
DataTable 上の特定の日付のレコードをフィルターするにはどうすればよいですか?
プレーンにしてみました [datecol] = #11 March 2010#
そして CONVERT([datecol],'System.DateTime') = #11 March 2010#
. 。運がなかった。
解決
[datecol] >= #11 March 2010 00:00# AND [datecol] <= #11 March 2010 23:59:59#
解決
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'
他のヒント
select * from [X] WHERE DATEDIFF(dd,[datecol],'3/11/2010') = 0
datediff 関数には非常に強力な機能があります。
DATEADD(DAY,DATEDIFF(DAY,0,[datecol]),0)
これは、他の処理にデータが必要な場合に、列から時間部分を削除できるもう 1 つの方法です。日中に発生する項目をグループ化する場合はこれを使用します。また、時間中または営業時間外に発生する項目をグループ化する必要がある場合は、他の用途に使用します。
次の LINQ コードを使用して、日付に従って DataTable 行セットをフィルターできます。
var resultSet = from tbl in dt.AsEnumerable()
where tbl.Field<DateTime>("ColName").ToString("dd/MMM/yyyy") == "07/Aug/2010"
select tbl;
さらに、DataTable に対する基本的な LINQ クエリの洞察を得るには、投稿を参照してください。 LINQ を使用した DataTable のフィルタリング
最高のRGDS
所属していません StackOverflow