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

[SOLUCIONADO] Consulta por fecha devuelve NULL donde no hay datos

Estas en el tema de Consulta por fecha devuelve NULL donde no hay datos en el foro de Mysql en Foros del Web. Buenas tardes, Tengo una tabla en la que he almacenado unos datos, y en una de las columnas está la fecha de grabación. Pero no ...
  #1 (permalink)  
Antiguo 02/05/2013, 13:16
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 14
Consulta por fecha devuelve NULL donde no hay datos

Buenas tardes,

Tengo una tabla en la que he almacenado unos datos, y en una de las columnas está la fecha de grabación. Pero no hay datos de todos los días.

El problema está en que al realizar una petición ajax al servidor y marcar la fecha en un selector de fecha, como el usuario no sabrá si ese día hay datos o no, aunque no haya datos me devuelve la información, pero con valores NULL.

¿Alguien podría indicarme una forma de filtrar y que sólo los que tengan datos almacenados me los devuelva? Había probado en el método POST de ajax a verificar que la fecha del selector de fecha sea igual si no que me devuelva false, pero me sigue arrojando NULL.

Había usado una sentencia donde especificaba la fecha en un BETWEEN FECHAINICIO AND FECHAFIN. Pero claro, en medio hay días que no tienen datos.

Gracias de antemano.
Saludos cordiales.
Francisco J.
  #2 (permalink)  
Antiguo 02/05/2013, 13:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta por fecha devuelve NULL donde no hay datos

El rpimer problema es que NULL no es un dato. Es un estado, un estado de indefinición, pero un estado al fín.
Como no es un dato, no funcionan con él los operadores lógicos porque no son posibles comparaciones contra la nada. En otros DBMS se pueden hacer, pero no en MySQL.
En ptincipio, si existe la posibilidad de que lleguen nulos tienes varias formas de manejarlo:
1) Programáticamente, todos los lenguajes pueden reconocer si en objeto recibido en la tabla es nulo o no, porque en todos los lenguajes existe un objeto Null, Nothing o Nil. Por ello, lo puedes controlar.
2) A nivel de SQL, sólo se puede manejar con clausulas IS NULL o IS NOT NULL, pero eso sólo en el WHERE o en comparaciones lógicas.
3) En el SELECT, es posible reemplazar un valor NULL por otra cosa, si se desea, por ejemplo por un caracter vacío (vacío y NULL no son lo mismo), pero para ello se debe invocar uno a uno los campos, y no se puede usar el asterisco (*) en el SELECT
Código MySQL:
Ver original
  1. SELECT a, b, c, d, e IFNULL(d, '') d
  2. FROM tabla;
__________________
¿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 02/05/2013, 13:35
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 14
Respuesta: Consulta por fecha devuelve NULL donde no hay datos

Muchas gracias, lo probaré y te comento.

Como siempre rápido, y seguramente acertado.

Saludos cordiales.
Francisco J.
  #4 (permalink)  
Antiguo 03/05/2013, 08:21
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 18 años, 2 meses
Puntos: 14
Respuesta: Consulta por fecha devuelve NULL donde no hay datos

Muchas gracias gnzsoloyo, funcionó perfectamente con la segunda opción que me diste.

Gracias nuevamente.

Saludos cordiales.
Francisco J.

Etiquetas: devuelve, fecha, null, select, tabla
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 02:54.