我有这个存储过程,可以更新答案的实际日期,但返回转换错误:
ALTER procedure [dbo].[MensajeCompletado]
@id int,
@RESPUESTA nvarchar(50),
@resp int = 1 output
AS
if Exists(select * from OFICIOS where IdOficio = @id)
begin
update OFICIOS
set Respuesta = @RESPUESTA,
FechaRecibido = CONVERT(nvarchar(11), GETDATE(), 105),
Estatus = 2
where IdOficio = @id
set @resp = 0
end
else
begin
set @resp = 1
end
我收到此错误:
Conversion failed when converting date and/or time from character string.
抱歉我的英语:)
最佳答案
如果FechaRecibido
是DATE
- 到底为什么你要转换GETDATE()
转换为 NVARCHAR
然后!?
只需通过转换为 DATE
将 GETDATE
(或更好:SYSDATETIME
)的输出分配给您的列:
update OFICIOS
set Respuesta = @RESPUESTA,
FechaRecibido = CAST(SYSDATETIME() AS DATE),
Estatus = 2
where IdOficio = @id
但是绝对不要转换为nvarchar
!!
关于sql - 更新时间存储过程更新错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746072/