Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/07/2013, 11:53
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
convertir fecha con date_format o str_to_date en el where no funca

hola como les va,

estoy tratando de comparar una fecha de formato d/m/Y con un date time, he intentado lo siguiente pero no me funcionan:

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE DATE_FORMAT(fecha_fin, '%d/%m/%Y') >= '12/07/2013' AND DATE_FORMAT(fecha_fin, '%d/%m/%Y') <= '12/08/2013'
  2.  
  3. SELECT * FROM tabla WHERE fecha_fin >= DATE_FORMAT('12/07/2013', '%Y-%m-%d %H:%i:%s') AND fecha_fin <= DATE_FORMAT('12/08/2013', '%Y-%m-%d %H:%i:%s')
  4.  
  5. SELECT * FROM tabla WHERE fecha_fin >= DATE_FORMAT('12/07/2013', '%Y-%m-%d 23:59:59') AND fecha_fin <= DATE_FORMAT('12/08/2013', '%Y-%m-%d 23:59:59')
  6.  
  7. SELECT * FROM tabla WHERE fecha_fin >= STR_TO_DATE('12/07/2013', '%Y-%m-%d %H:%i:%s') AND fecha_fin <= STR_TO_DATE('12/08/2013', '%Y-%m-%d %H:%i:%s')
  8.  
  9. SELECT * FROM tabla WHERE fecha_fin >= STR_TO_DATE('12/07/2013', '%Y-%m-%d 23:59:59') AND fecha_fin <= STR_TO_DATE('12/08/2013', '%Y-%m-%d 23:59:59')

El unico que funciono es este:

Código MySQL:
Ver original
  1. SELECT * FROM tabla WHERE fecha_fin >= '2013-07-12 09:48:33' AND fecha_fin <= '2013-08-12 09:48:33'

Pero segun yo para convertir fecha 12/08/2013 a 2013-08-12 09:48:33 se usan:

STR_TO_DATE('12/08/2013', '%Y-%m-%d %H:%i:%s')

o

DATE_FORMAT('12/08/2013', '%Y-%m-%d %H:%i:%s')

no?

entonces porque no resulta??

en mi tabla tengo las siguiente fechas con las que estoy probando:

Código:
+---------------------+
| fecha_fin
+---------------------+
| 2013-07-23 09:48:33 |
| 2013-07-29 09:49:56 |
| 2013-07-14 09:52:56 |
+---------------------+
Gracias