fecha 30/12/1899
Estoy usando Sql Server 2000 y no tuve problemas con el tema de las fechas
cambie a SqlServer 2008 y cuando quiero grabar una fecha vacia (30/12/1899), me lanza el siguiente error: the conversion of a varchar data type to a datetime data type resulted in an out-of-range value estoy usando xe7 y para almacenar la fecha solo hacia esto
esto es una declaracion de parametro a la cadena donde generaba al script para grabar alguien conoce alguna solucion que pueda ser usada en cualquier motor de base de datos? |
Cada gestor de bases de datos suele ser diferente en cuanto a la fecha inicial para contarlas.
De todas formas, ¿por qué dejas una fecha vacía? y si la dejas vacía, ¿qué fecha quieres que tome? |
Lo mas probable es que sea un problema de formato. Es bueno ser especifico, porque de acuerdo a la configuración regional de la maquina esto cambia:
https://docs.microsoft.com/en-us/sql...t-transact-sql Por lo demás, es un ERROR hacerlo como lo haces sin opciones explícitas de conversion. Recuerda: * Usa el formato ISO para fecha internamente. El formato de localizacion es SOLO paras visualizar al usuario. * Si por alguna razón tienes que almacenar el formato localizado, debes guardar en CUAL locale quedo. Y no hay otra que hacer conversiones aunque PAREZCA te todo esta bien porque en TU MAQUINA no hay error. * Usa configuraciones neutrales para fecha, decimales, etc. Asegurate de especificar eso en los parámetros de conexion * Usa UTF8 para texto a lo largo de toda la cadena de la APP. Es bueno siempre suponer "y que pasa si usan esto en China?" cuando haces apps... En resumen: Aprende sobre Localización e Internacionalización de apps y datos. |
algo curioso
entre al Managment de sql 2008 y le cambie el idioma a espaniol a la base de datos y funciono normal el tema de las fechas vacias es porque se trataba de una fecha de vencimiento, que puede o no tener un valor , tambien depende del registro que se esta grabando basicamente es un sistema contable, si grabo una cuenta de bancos no hay fecha de vencimiento pero si genero una cuenta de proveedores o clientes podria tener o no fecha de vencimiento. |
Cita:
Cita:
|
tomare en cuenta tus recomendaciones
gracias |
Hola oscarac,
Cuando realizo un le pongo un cero e internamente cuando se graba me poner la fecha en 01-01-1900, y nunca he tenido ningún problema. Un saludo. |
Cita:
|
En vez de hacer las cosas a punta de hacks, que tal si se usa los SQL valores correctamente?
Digo yo... ;) P.D: Mi trabajo es integrarme con multiples ERPs y otros sistemas. No me causa NINGUNA gracia tener que darle la "vuelta" a todas esas grandes "ideas" de como modelan las BD nuestros colegas.... |
La franja horaria es GMT +2. Ahora son las 00:56:17. |
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