21

私は日付を持っています、今日の日付を仮定します

declare @d datetime
set @d = '20101014'

私は欲しい

select @d - <six month>

は、@d から始まる過去 6 か月を含む実際の日数です。

4

2 に答える 2

49

あなたが使用することができますDATEADD

select DATEADD(month, -6, @d)

編集:6か月前までの日数が必要な場合は、次を使用できますDATEDIFF

select DATEDIFF(day, @d, DATEADD(month, -6, @d))
于 2010-10-14T12:21:10.910 に答える
1

これもチェックしてください(このテーマを開発しています):

条件に応じてアルゴリズムを選択する必要があります-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
于 2010-10-15T08:10:00.440 に答える