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

Query Ultimos 3 meses

Estas en el tema de Query Ultimos 3 meses en el foro de SQL Server en Foros del Web. Me gustaria saber como puedo consultar de una tabla todos los registros ingresados de los ultimos 3 meses sin incluir el mes actual ya que ...
  #1 (permalink)  
Antiguo 19/01/2011, 14:04
 
Fecha de Ingreso: enero-2011
Mensajes: 1
Antigüedad: 13 años, 3 meses
Puntos: 0
Query Ultimos 3 meses

Me gustaria saber como puedo consultar de una tabla todos los registros ingresados de los ultimos 3 meses sin incluir el mes actual ya que no esta completo
los 3 meses deben ser meses completos.

Muchas Gracias.
  #2 (permalink)  
Antiguo 19/01/2011, 15:29
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Query Ultimos 3 meses

Pues utilizando la funcion DATEADD, restandole 3 al mes y comparandolo con >= a esa fecha.

Ahora si son meses completos, solo restas 3 por mes al GETDATE(), eso te dara MES y AÑO que necesitas, solo debes agregar el 01 del dia.
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 19/01/2011, 15:40
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Query Ultimos 3 meses

Código SQL:
Ver original
  1. DECLARE
  2. @inicial datetime,
  3. @final datetime,
  4. @fecha datetime,
  5. @dias INT
  6.  
  7.  
  8. SELECT @fecha=getdate()-90
  9. SELECT @dias=(datepart(d,@fecha))
  10. SELECT @inicial=(dateadd(d,-@dias+1,@fecha))
  11. SELECT @fecha=getdate()
  12. SELECT @fecha=dateadd(m,1,@fecha)
  13. SELECT @dias=(datepart(d,@fecha))
  14. SELECT @final=(dateadd(d,-@dias+1,@fecha))
  15. SELECT @inicial=(dateadd(m,-1,@inicial))
  16. SELECT @final=(dateadd(m,-1,@final))
  17. print @inicial
  18. print @final
  19.  
  20. SELECT * FROM TABLE WHERE fecha BETWEEN @inicial AND @final

Prueba con esto :)

Saludos!

P.D: Creo que lo complique demasiado jejejeje
  #4 (permalink)  
Antiguo 19/01/2011, 16:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Query Ultimos 3 meses

Libras:


¿SELECT @fecha=getdate()-90?

Crees tu que quien desarrollo la funcion DATEADD, solo lo hizo por diversion
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 19/01/2011, 16:11
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Query Ultimos 3 meses

No, no lo creo iislas, me explaye demasiado en el codigo y fue lo que se me ocurrio, aunque se podia haber solucionado con lo que tu comentaste jejejeje :)


Aunque eso si, se llega al resultado deseado, o no???

Se que no es lo mas optimo pero funciona :P


Saludos!
  #6 (permalink)  
Antiguo 19/01/2011, 16:59
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Query Ultimos 3 meses

Me pregunto si esto funciona en SQL 2008:
Código SQL:
Ver original
  1. SELECT getdate()-90
Si es asi, no creo que sea un bug.
Estimado Isaias, DATEADD no solo resta dias, asi que ahi habria una diferencia para usar dicha funcion.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #7 (permalink)  
Antiguo 19/01/2011, 17:05
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Query Ultimos 3 meses

Libras

Creo que todos los que participamos en estos foros, lo hacemos de BUENA INTENCION, quiero creer que ese es tu objetivo cuando recomiendas algo.

Pero creo que debemos analizar bien lo que estamos "recomendando" y no se vale decir "Aunque eso si, se llega al resultado deseado", porque me suena a que NO IMPORTA que tanto se tarde, si de todos modos se llega al resultado esperado.

Saludos
__________________
MCTS Isaias Islas
  #8 (permalink)  
Antiguo 19/01/2011, 17:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Query Ultimos 3 meses

No, no respondo de mala intencion al contrario, acepto que el codigo que puse esta demasiado rebuscado y no es lo optimo, pero es lo que se me ocurrio asi de "rapido" no analize demasiado bien el problema y pues es una solucion no optima, pero al compañero que pregunta le puede servir de guia, ademas estoy abierto a aceptar las criticas o recomendaciones porque no lo se todo......

Eso si ten por seguro que mis post son con buena intencion.....

Flaviovich el query select getdate()-90 tambien funciona en sql 2008 :)

saludos!

Etiquetas: meses, query, ultimo
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 12:22.