1

学生のテーブルクエリから結果を選択したい-2013年のような年を渡す場合は、開始日と終了日に参加する学生を選択するか、学生の開始日が2010年で終了日である場合のように、彼は現在これらの年の間にいます年は 2013 年で、2011 年を選択すると、この学生の記録も表示されます。

テーブル構造は-

StudentID   Age startDate   EndDate

1           14  5/05/2013   7/05/2013   
4           17  4/04/2012   8/10/2012

そして私はこれを試しています-

select * from tblstudent 
Where  DATEPART(year, StartDate) BETWEEN @year-1 AND @year

前もって感謝します。

4

2 に答える 2

4

私があなたを理解したかどうかはわかりませんが、これでうまくいくはずです:

select *
from tblStudent s
where @year >= DATEPART(year, StartDate) and @year <= DATEPART(year, EndDate)
于 2013-05-16T07:21:12.590 に答える
1

実際、あなたはもうすぐそこにいます。

StartDateあなたの年部分があなたより小さいか等しいか、あなた@year 年の部分があなたEndDateより大きいか等しいかを比較するだけです@year

このようにしてみてください。

select *
from tblStudent
where DATEPART(year, startDate) <= @year and DATEPART(year, EndDate) >= @year

の場合@year = 2013、出力は次のようになります。

| STUDENTID | AGE |                  STARTDATE |                     ENDDATE |
------------------------------------------------------------------------------
|         1 |  14 | May, 05 2013 03:00:00+0000 | July, 05 2013 03:00:00+0000 |

ここSQL Fiddle Demoに。

于 2013-05-16T07:33:53.070 に答える