ejemplo sql sql-server-2005 datetime date datediff

ejemplo - SQL Server 2005: cómo restar 6 meses



dateadd sql (2)

Tengo una fecha, supongo hoy fecha

declare @d datetime set @d = ''20101014''

Necesito

select @d - <six month>

donde es el número real de días que contiene los últimos seis meses, a partir de @d.


Puedes usar DATEADD :

select DATEADD(month, -6, @d)

EDITAR : si necesita la cantidad de días hasta 6 meses atrás, puede usar DATEDIFF :

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


También revisa esto (desarrollando este tema):

Debo elegir el algoritmo según la condición, si hay tantos días entre dos fechas como en 6 meses (desde la última fecha).

Lo hice de esta manera:

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