1

エンティティ フレームワークを使用して MySql データベースを操作しています。DateTime 列の値の日付部分が現在の日の範囲内にあるすべての行を照会して返す DateTime 列があります。

4

4 に答える 4

6

DateTime プロパティは 1 日に正規化されていないため、1 日を通して任意の値を持つ可能性があると想定しています。

Entity Framework の世界にとどまる最も簡単な方法は、おそらく次のようなものです。

            DateTime today = DateTime.Today;                    // earliest time today 
            DateTime tomorrow = DateTime.Today.AddDays(1);      // earliest time tomorrow

            var q = db.Objects
                        .Where(x => x.Time >= today)
                        .Where(x => x.Time < tomorrow);

これは、(特定の日だけでなく) 時間の範囲を見つけることができる一般的な手法です。

テーブルに多くの行がある、またはこれからある場合は、テーブル全体をスキャンする必要がないように、インデックスが作成されていることを確認する必要があります。

于 2013-06-12T01:50:38.927 に答える
2

エンティティへの LINQ の使用:

private readonly Entities _db = new Entities();

var entities = (from t in _db.table
                    where t.dateColumn.Date.Equals(DateTime.Today)
                    select t);
于 2013-06-11T22:37:33.193 に答える
1

このような?

SELECT ??? FROM YourTable WHERE DATE(dateTime) = DATE(NOW());
于 2013-06-11T22:14:23.560 に答える