4

Linq to SQLのSQLでこれを行うことは可能ですか?

Select field from table where date between '2010-01-01' and '2010-01-31';

私ができることに気づきました:

where (monthBeginDate < a.StopDateActual && a.StopDateActual < monthEndDate)

しかし、私は前者ができるかどうか興味がありました。私は、そのようなステートメントで小なりと大なりを台無しにする悪い癖があります。

4

2 に答える 2

5

次のことができます。

public bool Between(DateTime value, DateTime from, DateTime To) {
   return value > from && value < to;
}

where Between(a.StopDateActual, monthBeginDate, monthEndDate)

IEnumerableただし、これは on ではなく onで機能することに注意してくださいIQueryable。つまり、結果は where が適用される前にデータ ソースから取得されます。これは、大量のデータの場合にパフォーマンスの問題になる可能性があるため、 where clasue が最善の方法です... > と < !!! には注意してください!!!

于 2010-02-25T20:02:45.907 に答える
4

いいえ、それはそれを行う方法です。C# には between 演算子がないと思います。

私のように、いつでもごまかして拡張メソッドを書くことができます。

public static bool BetweenDates (this DateTime checker, DateTime floor, DateTime ceiling)
{
    return (checker <= ceiling) && (checker >= floor);
}

次に、これを行うことができます;-)

.Where(s => s.StopDateActual.BetweenDates(monthBeginDate, monthEndDate));
于 2010-02-25T19:53:12.897 に答える