Pregunta

Tengo una cita, supongamos que la fecha de hoy

declare @d datetime
set @d = '20101014'

Necesito

select @d - <six month>

donde es el número real de días que contiene el último medio año, a partir de @d.

¿Fue útil?

Solución

Se puede usar DATEADD :

select DATEADD(month, -6, @d)

Editar : si usted necesita el número de días hasta 6 meses puede utilizar DATEDIFF :

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

Otros consejos

También puedes ver esto (el desarrollo de este tema):

i necesidad de elegir el algoritmo en función del estado - si hay igual número de días entre dos fechas como en 6 meses (hace 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top