Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/01/2016, 15:57
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: consulta simplificada a la fecha actual

Hola vani18:

Supongamos que tienes una tabla así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+---------------------+
  3. | id   | fecha               |
  4. +------+---------------------+
  5. |    1 | 2016-01-07 00:00:00 |
  6. |    2 | 2016-01-07 12:21:25 |
  7. |    3 | 2016-01-07 23:59:59 |
  8. |    4 | 2016-01-05 23:59:59 |
  9. |    5 | 2016-01-06 00:00:00 |
  10. |    6 | 2016-01-08 00:00:00 |
  11. +------+---------------------+
  12. 6 rows in set (0.00 sec)

El problema en realidad se resume en comparar sólo la fecha sin considerar la hora... esto lo puedes hacer con la función DATE(), de tal suerte que puedes hacer algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla WHERE DATE(fecha) = '2016-01-07';
  2. +------+---------------------+
  3. | id   | fecha               |
  4. +------+---------------------+
  5. |    1 | 2016-01-07 00:00:00 |
  6. |    2 | 2016-01-07 12:21:25 |
  7. |    3 | 2016-01-07 23:59:59 |
  8. +------+---------------------+
  9. 3 rows in set (0.00 sec)

O mejor aun, utilizar la función CURDATE() para obtener la fecha actual (sin horas);

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla WHERE DATE(fecha) = CURDATE();
  2. +------+---------------------+
  3. | id   | fecha               |
  4. +------+---------------------+
  5. |    1 | 2016-01-07 00:00:00 |
  6. |    2 | 2016-01-07 12:21:25 |
  7. |    3 | 2016-01-07 23:59:59 |
  8. +------+---------------------+
  9. 3 rows in set (0.00 sec)

El resultado es el mismo que con la consulta que tú estás haciendo:

Código MySQL:
Ver original
  1. mysql> SELECT *
  2.     -> FROM tabla
  3.     -> WHERE
  4.     -> fecha >= '2016-01-07 00:00:00' AND
  5.     -> fecha <= '2016-01-07 23:59:59';
  6. +------+---------------------+
  7. | id   | fecha               |
  8. +------+---------------------+
  9. |    1 | 2016-01-07 00:00:00 |
  10. |    2 | 2016-01-07 12:21:25 |
  11. |    3 | 2016-01-07 23:59:59 |
  12. +------+---------------------+
  13. 3 rows in set (0.00 sec)

Finalmente una observación: no utilices nombres de campos que sean palabras reservadas: DATE_ADD es una función de MySQL, lo que puede ocasionarte problemas.

Haz la prueba y nos comentas.

Saludos
Leo.