Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Error con dptimepicker (https://www.clubdelphi.com/foros/showthread.php?t=96087)

giantonti1801 02-02-2023 22:15:29

Error con dptimepicker
 
Hola foro en este momento estoy experimentando con un problema. Tengo un fron en vcl con delphi 11 y quiero utilizar un dbtimepicker para crear un nuevo registro requiero colocar la fecha de nacimiento pero tengo un error de no válido. Mi base de tato es SQL SERVER y el campo es de tipo Date. Actualmente esta guardando la fecha en la base de dato con este formato 2023-01-18. No se como poder corregir esta situación ya que que requiero incorporar este componente para poder sacar la edad, y además de ser más cómodo creo a la hora de crear un registro. Si alguien me puede indicar como solucionar este problemita se lo agradecería micho.

Neftali [Germán.Estévez] 03-02-2023 09:09:36

Cita:

Empezado por giantonti1801 (Mensaje 550221)
...
Actualmente esta guardando la fecha en la base de dato con este formato 2023-01-18.

Cuando Hables de un error, es bueno que incluyas el texto concreto de error. Ayuda a saber qué puede estar pasando.
Por lo demás yo revisaría la configuración de formato/idioma del SQL Server. Es posible que el idioma esté afectando a la forma en que se guardan las fechas. Si no coincide con el del sistema, puedes tener problemas de fechas incorrectas.

giantonti1801 03-02-2023 10:58:00

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 550225)
Cuando Hables de un error, es bueno que incluyas el texto concreto de error. Ayuda a saber qué puede estar pasando.
Por lo demás yo revisaría la configuración de formato/idioma del SQL Server. Es posible que el idioma esté afectando a la forma en que se guardan las fechas. Si no coincide con el del sistema, puedes tener problemas de fechas incorrectas.

el error que me da es: is not valid date voy a revisar el servidor para ver si puedo cambiar el formato de fecha.

Neftali [Germán.Estévez] 03-02-2023 11:39:34

Cita:

Empezado por giantonti1801 (Mensaje 550226)
el error que me da es: is not valid date voy a revisar el servidor para ver si puedo cambiar el formato de fecha.

Y los idiomas configurados tanto en el SQLServer como en el sistema.

giantonti1801 03-02-2023 11:40:31

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 550225)
Cuando Hables de un error, es bueno que incluyas el texto concreto de error. Ayuda a saber qué puede estar pasando.
Por lo demás yo revisaría la configuración de formato/idioma del SQL Server. Es posible que el idioma esté afectando a la forma en que se guardan las fechas. Si no coincide con el del sistema, puedes tener problemas de fechas incorrectas.

El error que da es is not a valid date and time, ya cambie el formato regional de fecha en el servidor lo coloque dd-mm-aaaa pero aun me sigue dando problema y en la base de dato sigue estando el mismo formato yyyy-mm-dd estoy revisando por todo lado para ver si puedo cambiar este formato en la base de dato pero no lo encuentro. algo más que puedo hacer?

giantonti1801 03-02-2023 14:19:48

Cita:

Empezado por giantonti1801 (Mensaje 550229)
El error que da es is not a valid date and time, ya cambie el formato regional de fecha en el servidor lo coloque dd-mm-aaaa pero aun me sigue dando problema y en la base de dato sigue estando el mismo formato yyyy-mm-dd estoy revisando por todo lado para ver si puedo cambiar este formato en la base de dato pero no lo encuentro. algo más que puedo hacer?

Comento:
1. cambie el idioma del servidor a español
2. Cambie el formato regional
3. cambie el idioma de la base de dato
4. borre la tabla la volvi a crear
5. refresque, reinicie el servidor
6. volvi a conectar el uniconnection y refresque los uniquery

giantonti1801 03-02-2023 14:26:24

Cita:

Empezado por giantonti1801 (Mensaje 550229)
El error que da es is not a valid date and time, ya cambie el formato regional de fecha en el servidor lo coloque dd-mm-aaaa pero aun me sigue dando problema y en la base de dato sigue estando el mismo formato yyyy-mm-dd estoy revisando por todo lado para ver si puedo cambiar este formato en la base de dato pero no lo encuentro. algo más que puedo hacer?

Comento:
1. cambie el idioma del servidor a español
2. Cambie el formato regional
3. cambie el idioma de la base de dato
4. borre la tabla la volvi a crear
5. refresque, reinicie el servidor
6. volvi a conectar el uniconnection y refresque los uniquery

pero aún me sigue dando el mismo error. dato curioso es que veo la propiedad de la base de datos y estan correcta estan todas en español y las fecha en la propiedad me aparecen correctas pero en la tabla me sigue apareciendo yyyy-mm-dd y aunque trate de escribir la fecha como dd-mm-yyyy cuando le doy enter se guarda automáticamente en el formato yyyy-mm-dd. ya no se que hacer para resolver este problema de que al conectar el dbtimepicker al campo fecha el error que muestra es ist not a valid date and time

movorack 03-02-2023 16:42:51

¡Hola, giantonti1801!

¿Puedes colocarnos el código con el que guardas la fecha en la base de datos?
Como bien sabrás en la mayoría de motores de bases de datos, las fechas aunque se vean con un formato de texto (ej "2023-01-18") son números.

Por tal motivo el mejor tratamiento que le puedes dar a la fecha siempre será con el tipo de dato TDate/TDateTime, esto te ahorra tener que convertir la fecha al formato que maneja el servidor y estar modificando la configuración del mismo (además que algunas veces eso no podrás hacerlo).

Por ej:

Código Delphi [-]
MyQuery.Edit;
MyQueryCampofecha.AsDateTime := DateTimePicker1.DateTime; 
MyQuery.Post;


La franja horaria es GMT +2. Ahora son las 23:59:04.

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