2010-12-06 11 views
13

今日の日付を探したいですが、2年前に戻ってください。今日の日付は2010年6月12日ですが、2008年6月12日を希望します。どのように私はSQLサーバーでこれを行うことができますか?2年後の日付を見つける方法

答えて

6
DATEADD(yy,-2,GETDATE()); 
+0

申し訳ありませんが、文字列ではありません! –

+0

これは間違っています。 SQL Server 2008では、2年ではなく2日が差し引かれます。 yは 'dyのような年の日'です。 –

+0

私は本当にそう速く編集してはいけません! :) –

19

SELECT DATEADD(year, -2, GETDATE())

又は

SELECT DATEADD(yy, -2, GETDATE())

又は

SELECT DATEADD(yyyy, -2, GETDATE())

あなたは変数としてそれを保存したい場合:

DECLARE @twoYearsAgo DATETIME; 

SELECT @twoYearsAgo = DATEADD(year, -2, GETDATE()); 
3

あなたはDATEADD()関数を必要とするようhttp://msdn.microsoft.com/en-us/library/ms186819.aspx

select dateadd(yy,-2,getdate()) 

は2年前

しかし、もしあなたにこの瞬間を取得しますねあなたは一日のスタートは、2年前に使用することができますしたい

select dateadd(dd,datepart(dd,getdate())-1,dateadd(mm,datepart(mm,getdate())-1,dateadd(yy,datepart(yy,getdate())-1902,0))) 

私はこれを書くためのよりクリーンな方法があると思うが、これは最初に頭に浮かんだものだった。

+0

その日の開始を選択するためのサブルーチンは、実際に私が探しているものです。どうもありがとう! –

関連する問題