Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Filtros por fecha

Estas en el tema de Filtros por fecha en el foro de SQL Server en Foros del Web. Hola a todos por aca, alguien sabe como hacerle para filtrar por fecha, pero solo preguntar por mes y año. Tengo una tabla con productos ...
  #1 (permalink)  
Antiguo 18/04/2006, 14:17
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Filtros por fecha

Hola a todos por aca, alguien sabe como hacerle para filtrar por fecha, pero solo preguntar por mes y año. Tengo una tabla con productos que tienen fecha de caducidad y tengo que generar un reporte de los productos que caducan en 3 meses. Es decir, estamos en abril, necesito mostrar los productos que caducan en julio, sin importar el dia

Mi tabla es

Id_producto (nvarchar)
qn_cantidad (numeric)
fe_caducidad (datetime)

Alguien sabe?
  #2 (permalink)  
Antiguo 18/04/2006, 14:42
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Algo como

SELECT *
FROM tabla
WHERE fecha_caducidad <= DateAdd(Month, 3, GetDate())

Eso permite que aproveches los posibles índices sobre el campo de fecha. Pequeños ajustes te permiten hacerlo de "todo el mes" y no X meses exactos a partir de hoy.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 18/04/2006, 14:45
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
He visto que hay una función que se llama MONTH y tambien YEAR puedes tomar esas funciones...
Puedes usar la función dateadd, adicionarle a la fecha más 3 ...
La sintaxis de DATEADD es (imagino que lo sabes)
DATEADD ( datepart , number, date )

A esta función puedes formatearla con MONTH(DATEADD(...)) y te saldria la fecha pero te devuelve un entero, salvo que lo valides comparandolo con MONTH(fe_caducidad)....
Bueno, es una idea.....
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #4 (permalink)  
Antiguo 18/04/2006, 15:03
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Gracias, revisaré en casa esas funciones en mas detalle

Gracias
  #5 (permalink)  
Antiguo 19/04/2006, 16:08
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Lo malo de usar Month y demás del lado del campo de la DB (en la compraración) es que no usarás los índices y forzarás un tablescan. Si la tabla tiene cierta capacidad eso puede resultar bastante oneroso para el servidor.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:20.