首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串转换日期和/或时间时,Server 2008 R2转换失败

从字符串转换日期和/或时间时,Server 2008 R2转换失败
EN

Stack Overflow用户
提问于 2015-01-06 14:20:38
回答 1查看 491关注 0票数 1

我在WindowsServer2008R2/IIS上使用Server 2008 R2和经典ASP。我知道经典的ASP在牙齿上很长,但是它与我正在使用的存储过程工作得很好。我有一个存储过程,它可以对smalldatetime列进行简单的更新,但我现在正尝试使用可变表名使这个过程成为一个动态过程。

正常工作的标准程序是:

代码语言:javascript
复制
CREATE PROCEDURE [dbo].[spendemerg]
(
  @rfid int
)
AS
BEGIN
   SET NOCOUNT ON;

   Update EmergencyContent 
   Set content_expiry = DATEADD(minute, -10, GETDATE())
   Where content_id = @rfid
END

我使用ADO传递变量参数@rfid,它工作得很好。当我试图将过程更改为使用动态SQL将表名作为变量传递时,我就遇到麻烦了。

这是动态过程:

代码语言:javascript
复制
ALTER PROCEDURE [dbo].[spendBroadcast]
    @rfid int,
    @strTable varchar(100)
AS
BEGIN
    SET NOCOUNT ON;
    DECLARE @SQL nvarchar(MAX);

    SET @SQL = 'UPDATE ' + @strTable + 
               ' SET content_expiry = '''+ CONVERT(datetime,(DATEADD(minute, -10, GETDATE())), 121) +
               ''' WHERE content_id = '+ @rfid
    EXEC(@SQL)
END

代码在使用SQL管理工作室的查询编辑器中运行正常,但是当通过IIS/经典ASP执行时,它会失败,出现以下错误:

从字符串转换日期和/或时间时,转换失败

执行存储过程时。

这是ASP代码:

代码语言:javascript
复制
Set objCm = Server.CreateObject("ADODB.Command")
Set objRe = Server.CreateObject("ADODB.Recordset")

  objCm.ActiveConnection = objConn
  objCm.CommandText = "spendBroadcast"
  objCm.CommandType = adCmdStoredProc


Set objParam = objCm.CreateParameter("rfid",adInteger,adParamInput,4, strID)
  objCm.Parameters.Append objParam
Set objParam = objCm.CreateParameter("strTable",adVarChar,adParamInput,100, strTableName)
 objCm.Parameters.Append objParam

Set objRe = objCm.Execute

任何想法和帮助都将不胜感激.谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-06 14:31:56

由于您正在构建一个动态SQL字符串,所以所有内容都应该是相同的数据类型(注意下面添加的2种转换):

代码语言:javascript
复制
SET @SQL = 'UPDATE ' + @strTable + ' SET content_expiry = '''
            + cast(CONVERT(datetime,(DATEADD(minute,-10,GETDATE())),121) as nvarchar(100))
            +''' WHERE content_id = ' + cast(@rfid as nvarchar(100))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27800643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档