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

Consulta Fechas

Estas en el tema de Consulta Fechas en el foro de Mysql en Foros del Web. Tengo la siguiente consulta, espero puedan ayudarme. Hago una consulta en un rango de fechas a un atributo de una tabla en mi base datos, ...
  #1 (permalink)  
Antiguo 26/04/2012, 07:20
Avatar de p5ych0  
Fecha de Ingreso: julio-2010
Mensajes: 11
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta Consulta Fechas

Tengo la siguiente consulta, espero puedan ayudarme.

Hago una consulta en un rango de fechas a un atributo de una tabla en mi base datos, de la siguiente manera:

Código PHP:
Ver original
  1. sql = "SELECT * FROM descarga WHERE planta = 'Oriente' AND Fechainicio BETWEEN '01/03/2012' AND '15/03/2012'";

El problema es que la consulta me devuelve valores que están en fechas del mes de abril, mostrando tanto marzo y abril a la vez, siendo que consulto en el rango de Marzo.

¿Alguien sabe porque me sucede esto?
  #2 (permalink)  
Antiguo 26/04/2012, 07:24
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta Fechas

Hola p5ych0:

Prueba poniendo las fechas en formato ANSI (yyyy-mm-dd) que es el formato estándar que utiliza la mayoría de los motores de BD.

Código MySQL:
Ver original
  1. SELECT * FROM descarga
  2. WHERE planta = 'Oriente' AND
  3. Fechainicio BETWEEN '2012-03-01' AND '2012-03-15'

Saludos
Leo
  #3 (permalink)  
Antiguo 26/04/2012, 07:46
Avatar de p5ych0  
Fecha de Ingreso: julio-2010
Mensajes: 11
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Consulta Fechas

Estimado leonardo_josue

Gracias por ayudarme, pero al poner la consulta como me indicas no se muestra nada, ya que en la base datos la fecha se guarda de la siguiente manera (dd/mm/aaaa) "03/03/2012".


Saludos.
  #4 (permalink)  
Antiguo 26/04/2012, 08:57
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Consulta Fechas

Hola p5ych0:

Creo que deberías por aclararnos de qué tipo de dato es tu campo, en la BD TODOS LOS CAMPOS TIPO FECHA SE ALMACENAN EN FORMATO ANSI, si dices que se está almacenando como 'dd/mm/yyyy' sospecho que estás almacenando la información en un campo tipo VARCHAR, lo cual es una barbaridad, la función BETWEEN funciona para números, fechas y cadenas pero tiene un comportamiento distinto dependiendo del tipo de dato del campo a analizar.

Saludos
Leo.
  #5 (permalink)  
Antiguo 26/04/2012, 20:26
Avatar de kivpson  
Fecha de Ingreso: marzo-2011
Mensajes: 37
Antigüedad: 13 años, 1 mes
Puntos: 7
Respuesta: Consulta Fechas

Hola amigo, lo que leo me hace pensar que el campo que usas para la fecha es de tipo varchar, por lo que tendrás que usar la función DATE para que puedas comparar fechas:

SELECT * FROM descarga
WHERE planta = 'Oriente' AND (
DATE(Fechainicio) BETWEEN '2012-03-01' AND '2012-03-15')

Ten en cuenta que la fecha de comparación debe estar en formato ANSI.

Lo recomendable para tratar fechas es el uso de campos tipo DATE o DATETIME, así te ahorras estos problemas.

Espero resuelva tu problema, saludos

Etiquetas: select, sql, tabla
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 09:22.