Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/03/2012, 09:06
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Select con fecha

Hola de nuevo Bandolera:

Si quieres utilizar sólo la parte de la fecha y omitir la hora debes hacer uso de la función DATE(), ya que de lo contrario es posible que no obtengas los resultados esperados. Cuando iguala una fecha con el formato 'yyyy-mm-dd' pero lo comparas contra un tipo timestamp, automáticamente se asigna una hora por defecto 00:00:00. Checa este script:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +---------------------+
  3. | campo_timestamp     |
  4. +---------------------+
  5. | 2012-03-26 00:00:00 |
  6. | 2012-03-26 00:00:01 |
  7. | 2012-03-26 12:12:23 |
  8. +---------------------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> SELECT * FROM tabla WHERE campo_timestamp = '2012-03-26';
  12. +---------------------+
  13. | campo_timestamp     |
  14. +---------------------+
  15. | 2012-03-26 00:00:00 |
  16. +---------------------+
  17. 1 row in set (0.00 sec)
  18.  
  19. mysql> SELECT * FROM tabla WHERE campo_timestamp = '2012-03-26 00:00:00';
  20. +---------------------+
  21. | campo_timestamp     |
  22. +---------------------+
  23. | 2012-03-26 00:00:00 |
  24. +---------------------+
  25. 1 row in set (0.00 sec)

Observa en los dos primeros select's... poner esto

Código:
campo_timestamp = '2012-03-26';
o esto

Código:
campo_timestamp = '2012-03-26 00:00:00';
ES EXACTAMENTE LO MISMO, para filtrar sólo la fecha, omitiendo la hora puedes hacer así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla WHERE DATE(campo_timestamp) = '2012-03-26';
  2. +---------------------+
  3. | campo_timestamp     |
  4. +---------------------+
  5. | 2012-03-26 00:00:00 |
  6. | 2012-03-26 00:00:01 |
  7. | 2012-03-26 12:12:23 |
  8. +---------------------+
  9. 3 rows in set (0.03 sec)

Saludos
Leo.