これは私がこれまでに持っているものです:
SELECT ListKey
FROM Closing_List
WHERE DATEPART(YEAR,closedate) > DATEPART(YEAR,GETDATE())-2)
しかし、私は 24 か月前に戻りたいと思っています。
ありがとう!
これは私がこれまでに持っているものです:
SELECT ListKey
FROM Closing_List
WHERE DATEPART(YEAR,closedate) > DATEPART(YEAR,GETDATE())-2)
しかし、私は 24 か月前に戻りたいと思っています。
ありがとう!
SELECT ListKey
FROM Closing_List
WHERE closedate > DATEADD(MONTH, -24, GETDATE())
SELECT ListKey
FROM Closing_List
WHERE closedate > DATEADD(MONTH,-24,GETDATE())
DATEADD
日付で何をしているのかを知っている限り、使用は問題ありません。
GetDate()
現在の日付と時刻を返します。今の私にとってそれは08/30/2013 02:18:14pm
DATEADD(MONTH,-24,GETDATE())
それを利回りに渡す08/30/2011 02:18:14pm'
そのため、その情報を使用してクエリを実行すると、 closedate より大きい (等しくない) を持つすべての結果が得られます08/30/2011 02:18:14pm
。それについて考慮すべき点がいくつかあります。
たとえば、2011 年 8 月 30 日の午後 1 時に終了したレコードがある場合、それらは結果に含まれません。さらに、締め切り日に時間がまったくない場合、2011 年 8 月 30 日以降のレコードは取得されません。
また、2013 年 9 月 2 日にそのクエリを実行すると、2011 年 9 月 1 日からのレコードは含まれないことに注意してください。必要に応じて、それが問題になる場合とそうでない場合があります。
別の解決策は次のとおりです。
SELECT ListKey
FROM Closing_List
WHERE closedate >= dateadd(month,datediff(month,0,getdate())-24,0)
上記を 2013 年 9 月にいつでも実行すると、2011 年 9 月から 2013 年 9 月までの終了日を持つすべてのレコードが含まれます。現在が何日であるか、または終了日に時間データが含まれているかどうかは関係ありません。