【问题标题】:Send DateTime parameter to a linked server stored procedure将 DateTime 参数发送到链接服务器存储过程
【发布时间】:2019-10-02 06:16:31
【问题描述】:

我需要在我的链接服务器上调用一个具有DateTime 参数的存储过程。

我目前正在使用以下查询

SET @RunSP = 'EXEC [Database].[dbo].[sp_MySP] @StartDate = convert(datetime, '''+@S+''') , @EndDate = convert(datetime, '''+@E+ ''') ';

我尝试了不同的方法来转换我的DateTime 参数,但每次都是 我收到以下错误:

Msg 241, Level 16, State 1, Line 14
Conversion failed when converting date and/or time from character string.

【问题讨论】:

  • @S@E 的数据类型是什么?
  • @Squirrel 日期时间。 Declare @S datetime Declare @E datetime Set @S = N'2017/01/01'; Set @E = N'2017/01/01';

标签: stored-procedures linked-server sql-server-2017


【解决方案1】:

@S@E转换为字符串格式YYYYMMDD并用单引号括起来

SET @RunSP  = 'EXEC [Database].[dbo].[sp_MySP] @StartDate = ''' + convert(varchar(10), @S, 112) + ''', @EndDate = '''  + convert(varchar(10), @E, 112) + ''''

提示:执行print @RunSP 以查看输出

Example @RunSP Output :
EXEC [Database].[dbo].[sp_MySP] @StartDate = '20170101', @EndDate = '20170101'

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多