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

calculos con fechas

Estas en el tema de calculos con fechas en el foro de Mysql en Foros del Web. Hola les solicito ayuda con un calculo entre fechas tabla1 fecha 20/07/2010 06/08/2010 18/01/2011 necesito consultar por ejemplo los registros que entre el 01/09/2011 y ...
  #1 (permalink)  
Antiguo 31/08/2011, 14:39
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 13 años, 4 meses
Puntos: 0
calculos con fechas

Hola
les solicito ayuda con un calculo entre fechas
tabla1
fecha
20/07/2010
06/08/2010
18/01/2011

necesito consultar por ejemplo los registros que entre el 01/09/2011 y 30/10/2011 tengan un año o mas
  #2 (permalink)  
Antiguo 01/09/2011, 07:38
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: calculos con fechas

Las fechas usualmente llevan el año por delante. Los campos DATE, si tienen el mismo formato, pueden usar comparadores simple >=<

A que te referis con un año o mas? De donde sale ese dato?
  #3 (permalink)  
Antiguo 01/09/2011, 12:08
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: calculos con fechas

Cita:
Iniciado por mayid Ver Mensaje
Las fechas usualmente llevan el año por delante. Los campos DATE, si tienen el mismo formato, pueden usar comparadores simple >=<

A que te referis con un año o mas? De donde sale ese dato?
estas fechas las tengo como varchar y cuando debo trabajar con ellas como fechas hago str_to_date()

les solicito ayuda con un calculo entre fechas
tabla1
fecha
20/07/2010
06/08/2010
18/01/2011

necesito consultar por ejemplo los registros que entre el 01/09/2011 y 30/10/2011 tengan un año o mas
sucede que tengo un formulario en el que el usuario debe seleccionar dos fechas la respuesta de la consulta debe ser los registros que entre las fechas cumplan el año o mas.
espero haberme explicado bien
  #4 (permalink)  
Antiguo 03/09/2011, 18:50
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: calculos con fechas

Insisto en que no queda claro en base a que se calcula "un año o mas".

Teniendo un rango de fechas, podes hacer algo así (el ejemplo es un PHP):

Código MySQL:
Ver original
  1. $fecha2 = '2006/03/19';
  2. $fecha1 = '2005/10/01';
  3. $sql = "SELECT * FROM `tabla` WHERE DATE_FORMAT(campo_fecha,'%Y %m %d') BETWEEN '$fecha1' AND '$fecha2';";

O algo así de simple, como te comentaba:

Código MySQL:
Ver original
  1. SELECT * FROM `tabla` WHERE campo_fecha >= '$fecha1' AND campo_fecha <= '$fecha2'

Lo de format date sería necesario en tu caso porque se ve que en vez de campo Date usaste un Varchar.
  #5 (permalink)  
Antiguo 04/09/2011, 07:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: calculos con fechas

Cita:
Iniciado por robiwimarbu1 Ver Mensaje
estas fechas las tengo como varchar y cuando debo trabajar con ellas como fechas hago str_to_date()

les solicito ayuda con un calculo entre fechas
tabla1
fecha
20/07/2010
06/08/2010
18/01/2011

necesito consultar por ejemplo los registros que entre el 01/09/2011 y 30/10/2011 tengan un año o mas
sucede que tengo un formulario en el que el usuario debe seleccionar dos fechas la respuesta de la consulta debe ser los registros que entre las fechas cumplan el año o mas.
espero haberme explicado bien
Perdona que te lo diga, pero tener las fechas como VARCHAR es un espanto. Es un error de diseño muy grave porque lo único que haces es reducir la perfomance de las consultas y usar un mayor espacio de disco para almacenarlas.
Sería mucho mejor que modificases eso y usases el tipo correcto, en lugar de inventar soluciones innecesarias.

¿Puedes hacerlo? ¿Puedes corregir esa columna para poner las cosas como deben estar?

Te resolvería las consultas mucho mejor que cualquier otra cosa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: fechas, registros, tabla, calculo
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 13:45.