Problema con fechas
Hola amigos del foro:
Tengo un problema con fechas, la situación es la siguente: En un stringGrid descargo todas las fechas que tengo en mi base de datos los descargo y les pongo formato con FormatDateTime ('dd/mm/yyyy', fecha) en el celda del StringGrid se muestra por ejemplo 01/08/2006 hasta ahi todo esta bien, pero cuando quiero volver a guardar los mismos datos a mi base de datos que es PostGreSQL, para esto utilizo la instruccion StrToDateTime para volver a darle formato a las fechas que estan en formato de cadena, el problema es que esta instruccion lo guarda como esta definida la cadena, mi problema es que a la hora de ver en mi base de datos las fechas estan cambiadas por ejemplo la fecha que estaba en la base de datos es 01/08/2006 en el grid pero en la base de datos esta como 2001/08/06 lo ha invertido. Como puedo dar solucion a este problema, espero su ayuda gracias |
01/08/2006
2001/08/06 Curioso, si señor, le resta cinco años y despues le suma 6 días :D :D. Supongo que la segunda fecha querías decir 2006/08/01. ¿qué programa usas para ver la fecha en la base de datos? Quizás está ahí el problema, el programa que usas, utiliza el formato aaaa/mm/dd. como sabes una fecha es sólamente los días que han transcurrido desde el día del calendario Base 31/12/1899, por tanto, da igual el formato que se guarde la fecha, siempre y cuando corresponda a la misma fecha (vaya juego de palabras... :D). Si tienes guardado 01 de agosto de 2006 en formato mm/dd y despues lo interpretas con formato dd/mm ahí si tienes un gran problema, ya que estarías diciendo que es 8 de enero. Conclusión: da igual el formato que uses siempre y cuando uses el mismo formato para mostrar una fecha y guardarla. Saludos |
Error
Gracias por responder pero me sigue saliendo error, el programa que utilizo es el PgAdmin te mando un poco del codigo que estoy utilizando:
El formato de la base de datos es yyyy/mm/dd, como soluciono este problema, espero puedas ayudarme gracias |
Para recuperarlo de la forma correcta de tu BBDD, lo único que necesitas es esto:
Para asignar una fecha a un campo usa: El punto está en usar ".AsDateTime := " dejando que delphi resuelva el formato con tu BBDD. Tú te quitas de problemas. Tarde o temprano, necesitarás pedir un listado por rango de fechas, en ese caso, haz lo mismo, que delphi se encargue de traducir las fechas:
Saludos |
Agradecimiento
Te cuento que resolvi el problema, pero la solución que me diste ya la probé al principio y tengo el mismo error, la solución que tome es intercambiar la fecha como una cadena de texto e inverti la cadena, y asi solucione el problema.
|
La franja horaria es GMT +2. Ahora son las 17:53:11. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi