UPDATE命令上的日期转换错误

时间:2011-08-02 13:09:13

标签: sql sql-update

我有一个存储过程在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)

这是错误...... 从字符串转换日期和/或时间时转换失败。

2 个答案:

答案 0 :(得分:4)

在将日期连接到其他字符串之前,您必须将日期转换为字符串:

... = ''' +  convert(varchar(20), @submitDate1) + ''', [...

答案 1 :(得分:1)

使用

convert(varchar,@submitDate1)

在您使用@submitDate1变量的地方。

SQL不会从日期到字符串进行隐式转换!