SQL - Error datetime SP

   
Vista:
Imágen de perfil de Be7or

Error datetime SP

Publicado por Be7or (5 intervenciones) el 25/11/2008 18:54:46
Hola buenas,

Tengo un problemita k me esta atorando demasiado el termino de un proyecto y es que tengo un SP que debe ingresar dos registros a una tabla dependiendo el modulo, uno de los parametros k paso es la fecha actual, lo hago desde asp para evitar que me tome los miliseguindos, el problema esta en k me arroja un error al konvertir datos.

Espero y puedan ayudarme y si es necesario mas informacion diganme.

-----------------------------------------------[stored procedure]-----------------------------------------------

ALTER PROCEDURE [dbo].[closeDetail]
@problem int,
@gpo nvarchar(20),
@seqGpo int,
@modulo nvarchar(20),
@spdate nvarchar(20)
AS
Declare @maxSeq int
Declare @seqStaff int
Declare @pdate datetime
select @spdate = REPLACE(@spdate,'.','')
select @pdate = CONVERT(DATETIME,@spdate)
IF @modulo = 'Inc'
BEGIN
SELECT @seqStaff = [SENT TO] FROM _SMDBA_._TELMASTE_ WHERE SEQUENCE = @problem
SELECT @maxSeq = MAX(SEQUENCE) + 1 FROM _SMDBA_._TELDETAI_
INSERT INTO _SMDBA_._TELDETAI_ (SEQUENCE,[_GROUP_],[PROBLEM #],PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq,@seqGpo,@problem,@seqStaff,41,@gpo,'User Defined Status Changed To CLOSED')
INSERT INTO _SMDBA_._TELDETAI_ (SEQUENCE,[_GROUP_],[PROBLEM #],PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq + 1,@seqGpo,@problem,@seqStaff,4,@gpo,'Close Call # ' + Ltrim(str(@problem)))
UPDATE dbo.SMSYSRECNUM SET RECNUM = @maxSeq + 1 WHERE NAME = '_TELDETAI_'
END
ELSE
BEGIN
SELECT @seqStaff = [SENT TO] FROM _SMDBA_._WORKORD_ WHERE SEQUENCE = @problem
SELECT @maxSeq = MAX(SEQUENCE) + 1 FROM _SMDBA_._WORKDET_
INSERT INTO _SMDBA_._WORKDET_ (SEQUENCE,[_GROUP_],TTNUM,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq,@seqGpo,@problem,@seqStaff,42,@gpo,'User Defined Status Changed To CLOSED')
INSERT INTO _SMDBA_._WORKDET_ (SEQUENCE,[_GROUP_],TTNUM,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq + 1,@seqGpo,@problem,@seqStaff,15,@gpo,'Closed WO # ' + Ltrim(str(@problem)))
UPDATE dbo.SMSYSRECNUM SET RECNUM = @maxSeq + 1 WHERE NAME = '_WORKDET_'
END

--------------------------------------------[codigo k ejekuta el sp]--------------------------------------------

Dbconn.Execute "EXEC closeDetail " & strSEQ & ",'" & strGPO & "'," & seqGPO & ",'" & strMod & "','" & Now & "'"

----------------------------------------------[error k me muestra]----------------------------------------------

Microsoft OLE DB Provider for ODBC Drivers error '80040e57'

[Microsoft][ODBC SQL Server Driver][SQL Server]Arithmetic overflow error converting expression to data type datetime.

------------------------------------------------------------------------------------------------------------------------

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error datetime SP

Publicado por Leopoldo Taylhardat (89 intervenciones) el 25/11/2008 19:17:30
Saludos...
Debieras preguntar en el foro de SQL Server, pero...
Creo que debes usar la función CONVERT o CAST (no se cual es la que usa SQL Server) para poner el dato en datetime...
Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error datetime SP

Publicado por like (1 intervención) el 25/11/2008 20:53:36
Tambien fijate si estas utilizando en mismo lenguaje de tu usuario en SQL, es decir si el lenguaje del usuario es en ingles y estas mandando la fecha en formato español pues ahi vas a tener problema.

intenta con esto

"'" + str(day(now)) + "/" + str(moth(now)) + "/" + str(year(year(now) + "'"

: )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Be7or

RE:Error datetime SP

Publicado por Be7or (5 intervenciones) el 25/11/2008 23:12:36
Si tenias razon era el idioma

Ya me kedo.

----------------------------------------------[Stored Procedure]----------------------------------------------

ALTER PROCEDURE [dbo].[closeDetail]
@problem int,
@gpo nvarchar(20),
@seqGpo int,
@modulo nvarchar(20),
@spdate nvarchar(20)
AS
Declare @maxSeq int
Declare @seqStaff int
Declare @pdate datetime
select @pdate = CONVERT(DATETIME,@spdate)
IF @modulo = 'Inc'
BEGIN
SELECT @seqStaff = [SENT TO] FROM _SMDBA_._TELMASTE_ WHERE SEQUENCE = @problem
SELECT @maxSeq = MAX(SEQUENCE) + 1 FROM _SMDBA_._TELDETAI_
INSERT INTO _SMDBA_._TELDETAI_ (SEQUENCE,[_GROUP_],[PROBLEM #],PDATE,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq,@seqGpo,@problem,@pdate,@seqStaff,41,@gpo,'User Defined Status Changed To CLOSED')
INSERT INTO _SMDBA_._TELDETAI_ (SEQUENCE,[_GROUP_],[PROBLEM #],PDATE,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq + 1,@seqGpo,@problem,@pdate,@seqStaff,4,@gpo,'Close Call # ' + Ltrim(str(@problem)))
UPDATE dbo.SMSYSRECNUM SET RECNUM = @maxSeq + 1 WHERE NAME = '_TELDETAI_'
END
ELSE
BEGIN
SELECT @seqStaff = [SENT TO] FROM _SMDBA_._WORKORD_ WHERE SEQUENCE = @problem
SELECT @maxSeq = MAX(SEQUENCE) + 1 FROM _SMDBA_._WORKDET_
INSERT INTO _SMDBA_._WORKDET_ (SEQUENCE,[_GROUP_],TTNUM,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq,@seqGpo,@problem,@seqStaff,42,@gpo,'User Defined Status Changed To CLOSED')
INSERT INTO _SMDBA_._WORKDET_ (SEQUENCE,[_GROUP_],TTNUM,PERSON,ACTION,[FROM_GROUP:],DESCRIPTION) VALUES (@maxSeq + 1,@seqGpo,@problem,@seqStaff,15,@gpo,'Closed WO # ' + Ltrim(str(@problem)))
UPDATE dbo.SMSYSRECNUM SET RECNUM = @maxSeq + 1 WHERE NAME = '_WORKDET_'
END

-------------------------------------------[codigo k ejekuta el sp]-------------------------------------------

Dbconn.Execute "EXEC closeDetail " & strSEQ & ",'" & strGPO & "'," & seqGPO & ",'" & strMod & "','" & month(now) & "/" & day(now) & "/" & year(now) & " " & hour(now) & ":" & minute(now) & ":" & second(now) & "'"

---------------------------------------------------------------------------------------------------------------------

Gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error datetime SP

Publicado por DALSOM (197 intervenciones) el 07/05/2009 20:53:13
TAMBIEN CON
SET DATEFORMAT MDY,
O
SET DATEFORMAT DMY

SALUDOS.
DALSOM.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar