Question

J'ai une date, la date d'aujourd'hui suppose

declare @d datetime
set @d = '20101014'

besoin

select @d - <six month>

où est le nombre réel de jours qui contient six derniers mois, à partir de @d.

Était-ce utile?

La solution

Vous pouvez utiliser DATEADD :

select DATEADD(month, -6, @d)

EDIT : si vous avez besoin le nombre de jours jusqu'à 6 mois il y a, vous pouvez utiliser DATEDIFF :

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

Autres conseils

Vérifiez également cette place (développer ce thème):

je dois choisir le algorythme en fonction de la condition - s'il y a autant de jours entre deux dates en 6 mois (il y a de la dernière date)

.

Je l'ai fait de cette façon:

    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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top