Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/07/2012, 01:17
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 10 meses
Puntos: 574
Respuesta: Rango Fecha y Hora en Query

Si usaras un datetime lo tendrias solucionado, creo

Código MySQL:
Ver original
  1. SELECT * FROM insert_tb
  2. where fechahora between '2012-06-05 20:00:00' and '2012-07-10 06:00:00'
  3. and id=2


Tienes la funcion
TIMESTAMP(expr1,expr2)

que te permitirá construir el DATETIME

Código MySQL:
Ver original
  1. SELECT * FROM insert_tb
  2. where TIMESTAMP(fecha,hora)
  3.          between TIMESTAMP('2012-06-05','20:00:00')
  4.                  and TIMESTAMP('2012-07-10','06:00:00')
  5. and id=2


http://dev.mysql.com/doc/refman/5.0/...erator_between

Cita:
expr BETWEEN min AND max

Si expr es mayor o igual que min y expr es menor o igual a max, BETWEEN retorna 1, de otro modo retorna 0. Esto es equivalente a la expresión (min <= expr AND expr <= max) si todos los argumentos son del mismo tipo. De otro modo la conversión de tipos tiene lugar según las reglas descritas al principio de la sección, pero aplicadas a todos los argumentos.

mysql> SELECT 1 BETWEEN 2 AND 3;
-> 0
mysql> SELECT 'b' BETWEEN 'a' AND 'c';
-> 1
mysql> SELECT 2 BETWEEN 2 AND '3';
-> 1
mysql> SELECT 2 BETWEEN 2 AND 'x-3';
-> 0
En la version en ingles del manual hay un ejemplo muy claro

mysql> SELECT 2 BETWEEN 1 AND 3, 2 BETWEEN 3 and 1;
-> 1, 0

es falso que 2 este entre 3 y 1 mientras que es cierto que 2 esta entre 1 y 3
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 12/07/2012 a las 01:30