Hola marco64yes:
Creo que no te tomaste el tiempo suficiente como para leer bien la documentación... DATE_FORMAT
Cita: DATE_FORMAT(date,format)
Formatea el valor date según la cadena format . Los siguientes especificadores pueden usarse en la cadena
Código MySQL:
Ver original -> DATE_FORMAT('2012-11-08 15:58:24', '%d-%m-%Y' ) mi_fecha
; +----------+------------+
| tu_fecha | mi_fecha |
+----------+------------+
+----------+------------+
1 row
in set, 1 warning
(0.00 sec
)
Podrás preguntarte SI EN LOS DOS CASOS SE ESTÁ ENVIANDO UNA CADENA POR QUE EN MI CASO NO FUNCIONA... mucho cuidado, cuando manejas una cadena con formato ANSI (yyyy-mm-dd hh24:mm:ss) SE INTERPRETA COMO UNA FECHA... es por eso que en el segundo casi si funciona. Ahora bien, si lo que quieres es convertir tu cadena a una fecha utilizas la función STR_TO_DATE:
Código MySQL:
Ver original+----------------+
| fecha_correcta |
+----------------+
| 2012-11-01 |
+----------------+
Aunque en realidad no tienes necesidad de hacer ningúna conversión si utilizas el formato ANSI... podrías hacer algo como esto:
Código:
SELECT *
FROM pagos
WHERE DATE(FECHA_SALDADA) BETWEEN '2012-11-01' AND '2012-11-30'
o
SELECT *
FROM pagos
WHERE
DATE(FECHA_SALDADA) >= '2012-11-01' AND
DATE(FECHA_SALDADA) <= '2012-11-30'
La función DATE() te serviría para excluir las horas y considerar sólo la fecha
Código MySQL:
Ver original+---------------------+-------------+
+---------------------+-------------+
| 2012-11-08 16:04:43 | 2012-11-08 |
+---------------------+-------------+
Saludos
Leo.