質問

DataTable 上の特定の日付のレコードをフィルターするにはどうすればよいですか?

プレーンにしてみました [datecol] = #11 March 2010# そして CONVERT([datecol],'System.DateTime') = #11 March 2010#. 。運がなかった。

MSDN:RowFilter 式の構文

解決

[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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top