我有一个存储过程在UPDATE命令上抛出错误,这里是相关的代码行。
DECLARE @submitDate1 DATETIME;
SET @submitDate1 = GETDATE()
SET @sql = 'UPDATE ' + @currTable + ' SET [lang_String] = ''' + @lang_String + ''', [date_Changed] = ''' + @submitDate1 + ''', [prev_LangString] = ''' + @prev_LangString + ''', [needsTranslation] = ''' + @needsTranslation + ''' WHERE [ID] = ' + CAST(@ID as nvarchar(10)) + '; '
EXEC(@sql)
这是错误...... 从字符串转换日期和/或时间时转换失败。
答案 0 :(得分:4)
在将日期连接到其他字符串之前,您必须将日期转换为字符串:
... = ''' + convert(varchar(20), @submitDate1) + ''', [...
答案 1 :(得分:1)
使用
convert(varchar,@submitDate1)
在您使用@submitDate1
变量的地方。
SQL不会从日期到字符串进行隐式转换!