24/08/2009, 04:41
|
| | Fecha de Ingreso: agosto-2009
Mensajes: 10
Antigüedad: 15 años, 5 meses Puntos: 0 | |
Respuesta: Operaciones con Fechas.. Hola yoelito,
bueno, pues completando un poco la respuesta de isslas, yo diría que tu consulta tendría que parecerse a ésta:
DECLARE @fecha_de_caducidad date
SET @fecha_de_caducidad = '2009-06-26'
SELECT (CASE WHEN DATEDIFF(DAY, dateCreated, @fecha_de_caducidad)<=0
THEN 1
ELSE 0
END)AS estaCaducado,
(CASE WHEN DATEDIFF(DAY, dateCreated, @fecha_de_caducidad)<=0
THEN DATEDIFF(DAY, dateCreated, @fecha_de_caducidad)
END) AS diasDesdeFechaCaducidad
FROM debitor
Lo que haces es definir la fecha de caducidad que tú quieras, en mi caso he decidido que la fecha de caducidad es el 26-06-2009.
Después defino una columna que será mostrada y se llamará "estáCaducado". Es decir, (miFecha - fechaDeCaducidad) <= 0. Sie está caducada arroja un 1(true), en caso contrario un 0(false).
Finalmente defino otra fecha, la diferencia entre la fecha seleccionada y la de caducidad y muestro el número. Por ejemplo, si el resultado fuera 3 eso significaría que el producto caducó hace tres días.
Usando los siguientes datos
tabla: debitor
columna: dateCreated
2009-06-19
2009-06-26
2009-06-26
2009-06-26
2009-06-26
2009-06-26
2009-06-26
2009-06-26
2009-06-26
2009-07-02
2009-07-10
2009-07-16
2009-07-16
2009-08-18
RESULTADO:
estaCaducato | fechaDeCaducidad
0 NULL ---> esta línea significa que no está caducado(estaCaducado = false)
1 0 ---> esta línea significa que está caducado, exactamente hoy caduca
1 0
1 0
1 0
1 0
1 0
1 0
1 0
1 -6 -----> esta línea significa que está caducado (1 = true), hace exactamente 6 días
1 -14
1 -20
1 -20
1 -53
Espero que te haya servido colega. Hasta la próxima.
Diego
Última edición por diego_hanseatico; 24/08/2009 a las 07:32 |