2012-02-12 7 views
1

私はDATETIMEカラムを持つデータベーステーブルを持っています。私がしたいことは、レコードの日付部分が今日の日付部分と同じかどうかを特定することです。しかし、私はデータ可能オブジェクトを持っており、SQL関数DATEPARTでdaUsage.Selectを使用することはできません。データテーブルの結果にSQL関数を使用する

私は、select関数を使用せずにデータテーブルから結果をフィルタリングする方法があるかどうかを尋ねています。これが可能であれば、どのように行われますか?私はLINQを使うことができましたが、私はそれをかなり新しくしました。そして、私はそれを行うためのよりよい方法が必要であると感じています。

おかげ

+1

をいくつかのコードを示し、それはすべて、このテキストを読むよりも理解することがはるかに簡単です! –

+1

どのようにデータテーブルを作成していますか?ある時点で、これは 'SELECT'クエリから来ている必要があります。このクエリでは、フィルタを適用したり、データテーブルの前に追加のカラム*を追加することができます。テーブルを指しているだけの場合は、代わりにビューをポイントすることができます。 –

答えて

2

あなたの日付は0時の間、この日の0時次の日であるかどうかを確認するためにDataTable.Selectを使用することができます:あなたは今日のレコードのみを取得し、このように

string selectString = String.Format("DateColumn >= '{0}' AND DateColumn < '{1}'", 
         DateTime.Today.ToString(DateTimeFormatInfo.InvariantInfo), 
         DateTime.Today.AddDays(1).ToString(DateTimeFormatInfo.InvariantInfo)); 
bool hasTodayRecords = dt.Select(selectString).Length > 0; 

。 LINQでは

あなたはDateTime.TodayDateTime.Dateを比較することができます:

bool hasTodayRecords = dt.AsEnumerable(). 
    Any(r => DateTime.Today.Equals(((DateTime)r["DateColumn"]).Date)); 
+0

あなたのお手伝いをありがとうございます...それは私が探しているようです。私は翌日を含めたくないので、DateColumn <'{1}であるべきではありませんか? –

+0

@アンドレアス:編集しました。しかし、 '<='では、翌日の正確な0時のレコードのみを含めることになります。 –

+0

ああ、そうだね。しかし、ありがとう。 –

関連する問題