質問

私は日付を持っています、今日の日付を想定してください

declare @d datetime
set @d = '20101014'

私は欲しい

select @d - <six month>

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

役に立ちましたか?

解決

使用できます DATEADD:

select DATEADD(month, -6, @d)

編集: :6か月前までに必要な場合は、使用できます DATEDIFF:

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

他のヒント

また、これを確認します(このテーマの開発):

条件に応じてalgorythmを選択する必要があります - 6か月(最終日以前)と同じくらい2つの日付の間に多くの日がある場合。

私はこのようにそれをしました:

    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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top