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

consulta simplificada a la fecha actual

Estas en el tema de consulta simplificada a la fecha actual en el foro de Mysql en Foros del Web. hola una pregunta, hay una manera de hacer mas simple esta consulta digo utilizando funciones de myqsl , ya que busco registros de la fecha ...
  #1 (permalink)  
Antiguo 07/01/2016, 09:56
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
consulta simplificada a la fecha actual

hola una pregunta, hay una manera de hacer mas simple esta consulta digo utilizando funciones de myqsl , ya que busco registros de la fecha actual ...

esta es la query

Código MySQL:
Ver original
  1. SELECT * FROM blablabla WHERE  date_add >= '2016-01-07 00:00:00' AND date_add <= '2016-01-07 23:59:59'

gracias
  #2 (permalink)  
Antiguo 07/01/2016, 15:57
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 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.

Etiquetas: actual, fecha, registros, select
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 22:03.