Frage

Ich habe ein Datum, suppose heute Datum

declare @d datetime
set @d = '20101014'

Ich brauche

select @d - <six month>

Dabei ist die tatsächliche Anzahl der Tage, die letzten 6 Monate enthält, von @d beginnen.

War es hilfreich?

Lösung

Sie können mit DATEADD :

select DATEADD(month, -6, @d)

Bearbeiten : Wenn Sie die Anzahl der Tage benötigen bis zu 6 Monate vor Sie DATEDIFF :

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

Andere Tipps

Auch dieses up überprüfen (Entwicklung dieses Themas):

Ich brauche die algorythm je nach Zustand wählen - wenn es so viele Tage zwischen zwei Daten, wie in 6 Monaten (vor aus dem letzten Datum)

.

Ich habe es auf diese Weise:

    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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top