web-dev-qa-db-ja.com

SQL Server 2005:6か月を差し引く方法

日付があります、今日の日付だとしましょう

declare @d datetime
set @d = '20101014'

私は欲しい

select @d - <six month>

ここで、@ dから始まる最後の6か月を含む実際の日数です。

19
skaeff

DATEADD を使用できます。

select DATEADD(month, -6, @d)

[〜#〜] edit [〜#〜]:6か月前までの日数が必要な場合は、 DATEDIFF

select DATEDIFF(day, @d, DATEADD(month, -6, @d))
46
Alex Bagnolini

これも確認してください(このテーマを開発しています):

条件に応じてアルゴリズムを選択する必要があります-2つの日付の間に6か月(最後の日付から前)と同じくらいの日数がある場合。

私はこの方法でそれをしました:

    case
      when
        DATEDIFF(day, DATEADD(month, -6, @pDateEnd), @pDateEnd)
        >
        DATEDIFF(day, @pDateBegin, @pDateEnd)
      then 'there is no 6-month difference between two dates'
      else 'there is 6-month difference ore more between two dates'
    end
1
skaeff