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

Comparaciones de fechas

Estas en el tema de Comparaciones de fechas en el foro de Mysql en Foros del Web. holas!!! Mi problem es el siguiente estoy intentando buscar entre fechas de tipo datetime la consulta q estoy realizando es la siguiente: "SELECT * FROM ...
  #1 (permalink)  
Antiguo 11/07/2006, 09:48
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 17 años, 10 meses
Puntos: 4
Comparaciones de fechas

holas!!!

Mi problem es el siguiente estoy intentando buscar entre fechas de tipo datetime la consulta q estoy realizando es la siguiente:

"SELECT * FROM clipping WHERE cuadrante LIKE '%$valor_esc' AND time >= '$fecha1%' AND time <= '$fecha2%'";

$fecha1 = es la fecha desde
$fecha2 = es la fecha hasta

el like es para que me busque auquellos nombres q empiecen por una determinada letra que la traigo con el POST...

me busca las fechas que son mayores y menores pero no me incluyen las q sean iguales...

Q estara sucediendo? Probe con el BEETWEN pero igual no me incluye las que son iguales a ellas...

Bueno gracias de antemano, los que me puedan ayudar...

Greisy
  #2 (permalink)  
Antiguo 11/07/2006, 09:54
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Has probado con DATEDIFF?
  #3 (permalink)  
Antiguo 11/07/2006, 10:31
 
Fecha de Ingreso: junio-2006
Mensajes: 87
Antigüedad: 17 años, 9 meses
Puntos: 0
Por darte alguna idea, mira a ver si es por tema de la hora de las fechas y por eso no te esta incluyendo las iguales, intenta truncar la fecha para no tener encuenta la hora.
  #4 (permalink)  
Antiguo 11/07/2006, 10:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Deberías concretar como trabajas tus fechas en tus campos .. usas campos tipo DATE? .. o DATETIME? .. o un formato própio.

Intenta usar las funciones de tratamiento de fechas para tal fin del SQL própio de Mysql (por aquí te orientarán al respecto).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 11/07/2006, 11:13
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 17 años, 10 meses
Puntos: 4
Cluster Alli lo estoy especificando... mi campo es tipo datetime...

Disculpa ... A que se refiere truncar la fecha?? y como lo hago?? me podrias dar un ejemplo por favor...
  #6 (permalink)  
Antiguo 11/07/2006, 11:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, ..

En $fecha que valor introduces ... (atendiendo que el campo es "datetime" y que guarda fecha + hora) .. Si introduces una fecha (sin hora, con el formato adecuado que Mysql gestiona yyyy-mm-dd) el hecho de "truncar" sería quedarte con la "fecha" o comparar sólo con la "fecha" de una fecha+hora dada .. Para eso puedes usar las funciones de SQL de Mysql para tal fin (y así no tener que recurrir a los % y tratar el tema como "cadenas" que realemnte no deberías hacerlo).

Código PHP:
$sql="SELECT * FROM clipping WHERE cuadrante LIKE '%$valor_esc' AND time >= DATE('".$fecha1."') AND time <= DATE('".$fecha2."')"
(ojo: DATE() está disponible desde MySQL 4.1.1. si usas versiones anteriores .. usa DATE_FORMAT() ..)

más info:
http://dev.mysql.com/doc/refman/4.1/...functions.html

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 11/07/2006, 12:55
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 17 años, 10 meses
Puntos: 4
mira lo que he hecho hasta ahora:

$time = $fila ["time"];
$anio = substr($time, -19, 4);
$mes = substr($time, -14, 2);
$dia = substr($time, -11, 2);

$fecha = $dia."-".$mes."-".$anio;

if (($fecha >= $fecha1)&&($fecha <= $fecha2)){
echo "<p>$fecha";
$cont_e++;
}elseif($fecha1 == $fecha2){
if ($fecha == $fecha1) {
$cont_e++;
}
}

Separe las fechas y me funciona, me cuenta todas las que estan dentro de ese rango... que esel if que podras ver alli.. Ahora en tal caso de que sean iguales... no me funciona... Por que?

Gracias... por respnder...

Greisy
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 04:07.