sql - 更新时间存储过程更新错误

标签 sql sql-server datetime stored-procedures

我有这个存储过程,可以更新答案的实际日期,但返回转换错误:

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.

抱歉我的英语:)

最佳答案

如果FechaRecibidoDATE - 到底为什么你要转换GETDATE() 转换为 NVARCHAR 然后!?

只需通过转换为 DATEGETDATE(或更好: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/

相关文章:

sql - 无法使用 ADSI 从 SQL 查询描述

python - 如何通过将日期作为用户输入来查找两个日期之间的差异

.net - 如何测试依赖于事件发生日期的功能?

sql - 你能解释一下这个 SQL 注入(inject)吗?

sql - 如何在存储过程中使用变量

sql - 修剪空白而不影响内部空白

mysql - MySQL 的日期维度生成器

sql - 如何使用 SQL 从数据库列中选择前 10 个最大的数字?

SQL 选择语句

Mysql select 查询获取当前用户帖子和关注的 friend 帖子