Foros del Web » Programando para Internet » PHP »

Problema con BETWEEN en SQL

Estas en el tema de Problema con BETWEEN en SQL en el foro de PHP en Foros del Web. Código PHP: mysql_select_db ( $database_noticias ,  $noticias ); $query_lastcut2  =  "SELECT SUM(ingreso) AS OrderTotal FROM ingresos where fecha BETWEEN $string AND $fecha2" ; $lastcut2  =  mysql_query ( $query_lastcut2 ,  $noticias ) or die( mysql_error ()); $row_lastcut2  =  mysql_fetch_assoc ...
  #1 (permalink)  
Antiguo 13/11/2015, 01:52
 
Fecha de Ingreso: mayo-2011
Mensajes: 167
Antigüedad: 12 años, 11 meses
Puntos: 1
Problema con BETWEEN en SQL

Código PHP:
mysql_select_db($database_noticias$noticias);
$query_lastcut2 "SELECT SUM(ingreso) AS OrderTotal FROM ingresos where fecha BETWEEN $string AND $fecha2";
$lastcut2 mysql_query($query_lastcut2$noticias) or die(mysql_error());
$row_lastcut2 mysql_fetch_assoc($lastcut2);
$totalRows_lastcut2 mysql_num_rows($lastcut2);

mysql_select_db($database_noticias$noticias);
$query_lastcut3 "SELECT SUM(egreso) AS egresoTotal FROM ingresos where fecha BETWEEN $string AND $fecha2";
$lastcut3 mysql_query($query_lastcut3$noticias) or die(mysql_error());
$row_lastcut3 mysql_fetch_assoc($lastcut3);
$totalRows_lastcut3 mysql_num_rows($lastcut3); 
Imprimi en pantalla el valor de:
$string = 20151113132604
$fecha2 = 20151113134822

para comprobar que no vinieran vacios pero aun asi no me da ningun resultado de la suma, intente quitar todo desde where y asi si me suma... Alguien sabe que me puede estar pasando?

Desde ya muchas gracias!
  #2 (permalink)  
Antiguo 13/11/2015, 06:18
Avatar de 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: Problema con BETWEEN en SQL

Por lo pronto, no es un problema exactamente con PHP, sino de BBDD.
Por otro, hay dos dilemas:
1) Creo que PHP no es capaz de manipular números de semejante longitud como 20151113134822. Eso podría ser un problema.
2) No queda claro que tipo de dato es "FECHA" en la tabla, pero si es un DATE o DATETIME, no puedes manipularlo como número. Tienes que usar funciones de conversión.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/11/2015, 07:26
 
Fecha de Ingreso: mayo-2011
Mensajes: 167
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: Problema con BETWEEN en SQL

Gracias gnzsoloyo
Revise la estructura de mi tabla y la fecha la tenia con varchar la cambie a datetime
y ahora ya me funciona el segundo query el de egresoTotal mientras que el de OrderTotal sigue mostrandolo sin resultados
  #4 (permalink)  
Antiguo 13/11/2015, 08:14
Avatar de 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: Problema con BETWEEN en SQL

La verdad es que sin ver los datos, y sin asegurarse de que lo contenido en la tabla no se corrompió con lo que hiciste es dificil darte una respuesta.
Ahora bien, el hecho de que no falle, implicaría que no hay errores de sintaxis, pero puede haber un error de datos, toda vez que sigues trabajando el contenido de las variables como numeros, lo que podría causar errores de conversión implícita.

Podrías tomarte el tiempo de mostrarnos los datos reales de la tabla, y una muestra de cómo está quedando armada la query que MySQL recibe?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: fecha, mysql, select, sql
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 00:33.