DateFinished という日時フィールドがあります。DateFinished が現在の月/年内にあるすべてのレコードを取得できる必要があります。
質問する
29292 次
3 に答える
20
行の数が少ない場合DateFinished
は、これで今年の今月のすべての行を取得できます。
SELECT *
FROM MyTable
WHERE Year(DateFinished) = Year(CURRENT_TIMESTAMP)
AND Month(DateFinished) = Month(CURRENT_TIMESTAMP)
DateAdd
ただし、これは多数の行で非常に遅くなる可能性がDatePart
ありBETWEEN
ます.
于 2012-12-05T16:29:51.217 に答える
13
代わりに、DateFinished のインデックスを使用する必要があります。
SELECT *
FROM MyTable
WHERE DateFinished BETWEEN
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
AND
DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)
于 2012-12-05T17:27:33.663 に答える