返されるデータを、当月の開始日と終了日を持つポイント (アクティブなプロジェクト) のみに制限しようとしています。今日は月の最終日であるため、動作に問題があります。明日も問題になると思います(サンプルに6月のデータは含まれていません)。
これが私のデータセットです(表1):
Project User Effort Start_Date End_Date
------- ------- ------ -------- --------
Traffic Control DOMAIN\john.smith 0.1 5/1/2013 5/31/2013
Turboencabulator Analysis DOMAIN\mark.webber 0 5/1/2013 5/31/2013
Widget Calibration DOMAIN\mark.webber 0 5/1/2013 5/31/2013
Gizmo Creation DOMAIN\steve.green 0.1 5/1/2013 5/31/2013
Advanced Toolmaking DOMAIN\steve.green 0.6 5/1/2013 5/31/2013
Diesel Engine Diagnostics DOMAIN\steve.green 0.05 5/1/2013 5/31/2013
Cold Fusion Reactor Creation DOMAIN\steve.green 0.3 5/1/2013 5/31/2013
今日、次のクエリを使用すると、結果が返されません。
SELECT * FROM dbo.table1
WHERE Start_Date <= (getdate()) AND End_Date >= (getdate())
ORDER BY User, Start_Date
昨日は無事に帰ってきました。6 月のデータもあります (私のサンプルには表示されていません) が、当月のデータが 1 か月を通して確実に返されるようにステートメントを変更する必要があります。
回答 - 正しい WHERE ステートメント (以下の回答のコメントから):
WHERE (Month(Start_Date) <= Month((getdate())) AND Month(End_Date) >= Month((getdate()))) AND (YEAR(Start_Date) <= YEAR((getdate())) AND YEAR(End_Date) >= YEAR((getdate())))