![]() |
Convertir fecha en un Where
Que tal?
Tengo un problema relacionado con las fechas... Uso delphi 5 con MySql, y guardo las fechas como cadenas, no propiamente como fechas. El problemas me surgio al querer hacer un reporte de una fecha inicial a otra final, ya que al querer jalar la fecha guardada, viene en cadena y no la puedo comparar con la fecha de un DateTimePicker. Y si las comparo como cadenas, han de saber que "27/04/2008" no es mayor que "29/03/2008". Entonces me veo en la necesidad de compararlas forzosamente como fechas y no como cadenas. Código Delphi [-] Query.sql.text:='select * from viajes where Fecha>=datetostr("'+DateTimePicker.date+'")'; Query1.execSql; Esta consulta, como le decia, no me devuelve los valores correctos, ya que algunas fechas del resultado realmente no son mayores a las del DateTimePicker. Mi idea era hacer algo como: Código Delphi [-] Query.sql.text:='select * from viajes where strtodate(Fecha)>="'+DateTimePicker.date+'")'; Query1.execSql; O sea, convertir en ese momento la fecha que estoy jalando, pero me salta un error. Agradezco su atencion. |
Hola Enriquelán, no te sería mas facil cambiar el tipo de dato a tu campo, la verdad no es normal que a una fecha le pongas como cadena, strtodate no te funcionara porque es una función de Delphi y no de Mysql.
Saluditos |
Gracias, caro!
Lo que pasa es que ya tengo mucha informacion en ese campo. Al cambiarla, se pierde y tengo que volver a meterla manualmente. Ademas MySql solo ofrece un formato de fecha y no es con el que he venido trabajando, por lo cual tendria que cambiar todo. Y seguro tambien tendre que cambiar el formato de fecha en el panel de control de windows para que quede igual que el de mysql, verdad? Muchas gracias por tu ayuda! |
Podrías utilizar parámetros y de esa forma no tendrías que hacer ninguna conversión:
"ExecSQL" se utiliza solo para consultas de modificación (Insert, delete, update...), "Open" se utiliza para consultas normales "Select" |
Man para eso usa el Formatdatatime , sino nunca te saldra , te mando un ejemplo
dateforchancenow:=now; variable a pasar la fehca de tipo tdatetime formatdatenow:=formatdatetime('mm-dd-yyyy',dateforchancenow); //Asignamos el formato a la Variable de la fecha a Utilizar de tipo string; luego en where la pones a validar el formatdatenow . EL formato puede ser difirente, eso depende de la base de datos a usar , puede ser ('dd/mm/yyyy') , es la mas comun. |
| La franja horaria es GMT +2. Ahora son las 07:50:50. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi