Tema: Fechas
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/02/2011, 18:14
Avatar de gnzsoloyo
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: Fechas

¿Que es lo que te resulta dificultoso del BETWEEN?
BETWEEN permite determinar un rango restringido de valores dentro de los que se buscará un dato determinado. Tiene tres parámetros: 1) dato buscado, 2) cota inferior (incluida en el rango), cota superior (también incluida en el rango).
Para buscar un valor comprendido entre 100 y 200, incluyendo ambos valores, sería:
Código MySQL:
Ver original
  1. WHERE valorbuscado BETWEEN 100 AND 200
Si vas a trabajar con fechas, lo único que debes hacer es que los tres parámetros sean del mismo tipo de datos buscado:
Código MySQL:
Ver original
  1. WHERE DATE(fechahora) BETWEEN '2011-01-11' AND '2011-02-11'
El siguiente ejemplo produce una conversión de datos implícita, que pone la hora de las cotas como '00:00:00', por lo que si el valor supera esa hora en la cota superior, el registro no será mostrado.
Código MySQL:
Ver original
  1. WHERE campofechahora BETWEEN '2011-01-11' AND '2011-02-11'
Esto sucede porque MySQL convierte un dato menor a uno mayor cuando se lo compara con uno mayor. Y es una conversión implícita, lo que quiere decir que no te avisa cuando la hace, por lo que debes asegurarte siempre que los datos comparados sean compatibles en tipo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)