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

problemas con consulta entre 2 fechas

Estas en el tema de problemas con consulta entre 2 fechas en el foro de Mysql en Foros del Web. Buenas; lo primero, no se si la consulta deberia venir aqui o en mysql. Os explico: Tengo en una tabla, un campo que se llama ...
  #1 (permalink)  
Antiguo 22/03/2011, 04:21
 
Fecha de Ingreso: noviembre-2005
Mensajes: 44
Antigüedad: 18 años, 5 meses
Puntos: 0
problemas con consulta entre 2 fechas

Buenas;
lo primero, no se si la consulta deberia venir aqui o en mysql. Os explico:

Tengo en una tabla, un campo que se llama dia_inicio (varchar).

Necesito sacar unos listados de esa tabla de la siguiente manera:

recibo 2 variables en las que indico desde que fecha hasta que fecha ($desde, $hasta), tengo que hacer la busqueda de todos los registros que esten comprendidos entre esas fechas.

el problema viene en que el formato de fechas que yo tengo es dd/mm/aaaa.

He probado una infinidad de funciones.

que tendria que cambiar en esta consulta?

$result=mysql_query("select * from op_servicios where STR_TO_DATE(dia_inicio,'%d/%m/%Y') BETWEEN '$desde' and '$hasta' ORDER BY id",$link);

Última edición por joshenema; 22/03/2011 a las 04:54
  #2 (permalink)  
Antiguo 22/03/2011, 05:35
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: problemas con consulta entre 2 fechas

where STR_TO_DATE(dia_inicio,'%d/%m/%Y') En el where has de poner el nombre del campo donde ha de hacer la consulta del between de los dos dates.

Ejemplo: SELECT * FROM Store_Information WHERE Date BETWEEN '06-Jan-1999' AND '10-Jan-1999'
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #3 (permalink)  
Antiguo 22/03/2011, 05:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 44
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: problemas con consulta entre 2 fechas

el campo es dia_inicio pero le pongo STR_TO_DATE(dia_inicio,'%d/%m/%Y') para formatear ese campo. Tambien he probado con DATE_FORMAT(dia_inicio,'%d/%m/%Y')

un saludo
  #4 (permalink)  
Antiguo 22/03/2011, 05:53
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: problemas con consulta entre 2 fechas

Entonces te recomendaría que eliminases el formateo del campo y que las variables estuvieran tal como estan en la bd.

Puede que no sea de mucha ayuda pero a mi me funciona correctamente este query en mi phpadmin:
SELECT * FROM `tabla` WHERE campo BETWEEN '2011-02-01' AND '2011-02-28' ORDER BY campo
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #5 (permalink)  
Antiguo 22/03/2011, 05:56
 
Fecha de Ingreso: noviembre-2005
Mensajes: 44
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: problemas con consulta entre 2 fechas

gracias por la respuesta.
Ya habia hecho la prueba poniendo en formato yyyy/mm/dd, pero tengo varias tablas de las que saco informes y si no tendria que convertir todas las fechas a ese formato.

Lo que busco es alguna manera de que me pueda hacer la comparacion con el formato de fechas dd/mm/aaaa

saludos
  #6 (permalink)  
Antiguo 22/03/2011, 06:19
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: problemas con consulta entre 2 fechas

Mmm, me parece que el problema está que no se puede usar STR_TO_DATE() para dar formato a una columna, solo sirve para dar formatos a strings. STR_TO_DATE(str,format).
Por eso no funciona (o eso es lo que yo pienso)
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #7 (permalink)  
Antiguo 22/03/2011, 09:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a Mysql
  #8 (permalink)  
Antiguo 22/03/2011, 09:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: problemas con consulta entre 2 fechas

Cita:
Iniciado por joshenema Ver Mensaje
gracias por la respuesta.
Ya habia hecho la prueba poniendo en formato yyyy/mm/dd, pero tengo varias tablas de las que saco informes y si no tendria que convertir todas las fechas a ese formato.

Lo que busco es alguna manera de que me pueda hacer la comparacion con el formato de fechas dd/mm/aaaa

saludos
El problema es que metieron la pata de entrada: No debes usar VARCHAR para almacenar una fecha. Paa eso existen los tipos de dato DATE y DATETIME. Ahora tienes el datos incompatibles...
Si quieres un consejo sincero, tomate el trabajo de migrar los tipos de datos, te evitarás muchísimos problemas a futuro y facilitarás enormemente las consultas.
En el caso de los reportes, las consultas deben convertir ese dato a su formato de salida (cosa mucho más fácil usando DATE_FORMAT()), o bien lo manejas en la aplicación (cosa más fácil aún). Lo que jamás te conviene es poner una fecha como VARCHAR en esa forma porque te ariesgas a que entren datos que luego no se puedan procesar, incluso usando STR_TO_DATE().
__________________
¿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, php
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 03:04.