PDA

Ver la Versión Completa : problemas al introducir fechas a sql 2000


alfil123
26-11-2007, 19:38:35
hola amigos:
tengo un problema al introducir una fecha a un campo datetime del sql2000, lo primero es que estoy usando un datimepicker, a este datime lo transformo con datetostr(dtp_FechaS.Date), luego llamo a un procedimiento que asu ves llama a un procedimimeinto almacenado para insertar los datos en la tabla,

el procedimiento con el que invoco el procedimiento almacenado es es
EXEC SP_INSERTAR_TAnimal '+ QuotedStr(Cod_Animal)+','+QuotedStr(Cod_Raza)+','+QuotedStr(Cod_pozagalponNac)+','+QuotedStr(Cod_Tip oAnimal)+','+QuotedStr(Fecha_nacimiento)+)

y este es el procedimiento almacenado en si
CREATE PROCEDURE sp_Insertar_TAnimal
@Cod_Animal varchar(20),
@Cod_Raza varchar(20),
@Cod_pozagalponNac varchar(20),
@Cod_TipoAnimal varchar(20),
@Fecha_nacimiento datetime,

AS
BEGIN
INSERT INTO TAnimal VALUES(@Cod_Animal,@Cod_Raza,@Cod_pozagalponNac,@Cod_TipoAnimal,@Fecha_nacimiento)
END


Y despues de hacer todo esto se me muestra el mensaje "Error converting data type varchar to datetime"

enecumene
26-11-2007, 20:48:54
Hola, lo que el error mismo te esta diciendo es que estas intentando insertar datos tipos string en un campo de tipo fecha, para mi el problema esta en esta parte:

EXEC SP_INSERTAR_TAnimal '+ QuotedStr(Cod_Animal)+','+QuotedStr(Cod_Raza)+','+QuotedStr(Cod_pozagalponNac)+','+QuotedStr(Cod_Tip oAnimal)+','+QuotedStr(Fecha_nacimiento)+')

supongo que los datos lo estas sacando por medio de componentes edits y datetimepicker, como dices, entonces creo que deberia ser asi:

EXEC SP_INSERTAR_TAnimal '+ QuotedStr(Edit1.text)+','+QuotedStr(Edit2.text)+','+QuotedStr(Edit3.text)+','+QuotedStr(Edit4.text)+ ','+QuotedStr(DateTimePicker.Date)+')

que me corrijan los maestros.

Saludos.

luisgutierrezb
26-11-2007, 21:40:57
en que formato mandas la fecha hacia el store procedure?? yo te recomiendo que uses el formato ISO 'YYYYMMDD' entre comillas simples como el ejemplo, al menos yo, no eh batallado para manejar las fechas asi

ContraVeneno
26-11-2007, 23:20:57
también puedes utilizar la función "FormatDateTime"

Neftali [Germán.Estévez]
27-11-2007, 10:44:17
yo te recomiendo que uses el formato ISO 'YYYYMMDD'

Coincido con Luis; Yo siempre utilizo este (creo que es el formato chino) y hasta ahora sin problemas...

afunez2007
19-12-2008, 00:51:10
Lo primero quue debes hacer es especificar el formato de fecha asi:


ShortDateFormat:='dd/mm/yyyy';



o si utilizas formato americano seria asi:


ShortDateFormat:='mm/dd/yyyy';



Luego deberas cambiar la fecha en texto, incluyendo un DateToStr de la siguiente forma:


EXEC SP_INSERTAR_TAnimal '+ QuotedStr(Edit1.text)+','+QuotedStr(Edit2.text)+','+QuotedStr(Edit3.text)+','+QuotedStr(Edit4.text)+ ','+QuotedStr(DatetoStr(DateTimePicker.Date))+')


Yo siempre lo hago de esa forma y no me da problemas

Saludos