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

Rango Fecha y Hora en Query

Estas en el tema de Rango Fecha y Hora en Query en el foro de Mysql en Foros del Web. Buen dia. Estoy desarrollando una aplicacion en php y mysql y me he topado con un problema, nesesito obtener desde mi BDD la fecha y ...
  #1 (permalink)  
Antiguo 11/07/2012, 17:40
 
Fecha de Ingreso: marzo-2011
Ubicación: San Salvador
Mensajes: 49
Antigüedad: 13 años, 1 mes
Puntos: 0
Rango Fecha y Hora en Query

Buen dia.

Estoy desarrollando una aplicacion en php y mysql y me he topado con un problema, nesesito obtener desde mi BDD la fecha y hora, hasta este punto todo bien mas sin embargo el progrma se ejecutara a las 6:00 am y este recorrera -12 hora .. el proble surge cuando se llega el rango de fecha diferente es decir del 10-07-2012 al 11-07-2012 no me toma los datos que esstan de las 00:00:00

Esta es la consulta que ejecuto
Código PHP:
SELECT FROM insert_tb
where hora between 
'20:00:00' and '06:00:00'
and fecha between '2012-06-05' and '2012-07-10'
and id=
las hora y fecha la obtengo del Server a travez de este codigo
Código PHP:
$fecha_actual strtotime(date("d-m-Y H:i:s"));

//Calcula 12 horas antes de la hora actual
$fecha_ini=($fecha_actual-12*60*60);

echo 
"ESTA SERA LA HORA QUE TOMARA EL PROGRAMA CUANDO SE EJECUTE <br />";
echo 
date("d-m-Y H:i:s",$fecha_actual)."<br /><br />";

echo 
"ESTE SERA EL RANGO DE FECHAS A CONSULTAR EN EL QUERY <br />";
echo 
"FECHA INICIO: ".date("d-m-Y",$fecha_ini)."<br />";
echo 
"FECHA FIN: ".date("d-m-Y",$fecha_actual)."<br /><br />";

echo 
"ESTE SERA EL RANGO DE HORAS A CONSULTAR EN EL QUERY <br />";
echo 
"HORA INICIO: ".date("H:i:s",$fecha_ini)."<br />";
echo 
"HORA FIN: ".date("H:i:s",$fecha_actual)."<br /><br />";

echo 
"ACA EL RESULTADO DEL QUERY"
Este script PHP es el qe mandara las variables a la consulta, no puedo generar dicha consulta .

de anteno les agradezco
  #2 (permalink)  
Antiguo 12/07/2012, 01:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
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

Etiquetas: fecha, php, rango, sql, time, bbdd
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 16:37.