【问题标题】:Date Parameters Open Query SQL - ERROR: Unclosed quotation mark after the character string日期参数打开查询 SQL - 错误:字符串后的未闭合引号
【发布时间】:2018-05-09 09:42:07
【问题描述】:

谁能看看我下面的代码,让我知道我哪里出错了。尝试通过 Open Query 传递日期参数 & 得到错误 - 字符串后的引号未闭合

--@PID varchar(11),
@START datetime,
@END datetime

AS BEGIN

SET NOCOUNT ON;

--DECLARE @PID1 varchar(11) = @PID
DECLARE @START1 datetime = @START 
DECLARE @END1 datetime = @END
DECLARE @TSQL varchar(8000)

SET  @TSQL = 'SELECT * FROM OPENQUERY ("CWSLIVE", ''SELECT * FROM  pricing_base_data 

WHERE date >= convert(date, ''''' + convert(varchar, @START1, 23)+ ''''', 23)
                and date < convert(date, ''''' + convert(varchar, @END1, 23)+ ''''', 23))'

--PRINT (@TSQL)
EXEC (@TSQL)
END

GO

【问题讨论】:

    标签: parameter-passing openquery


    【解决方案1】:

    像这样使用您的查询:- 两边双引号: "SELECT * FROM OPENQUERY ("CWSLIVE", ''SELECT * FROM pricing_base_data WHERE date >= convert(date, ''''' + convert(varchar, @START1, 23)+ ''''', 23) and date

    【讨论】:

    • 我收到以下错误消息:- 消息 102,级别 15,状态 1,过程 SP_CWS_PriceSearchTesting,第 20 行“CWSLIVE”附近的语法不正确。消息 103,级别 15,状态 4,过程 SP_CWS_PriceSearchTesting,第 20 行以 ', ''SELECT * FROM pricing_base_data WHERE date >= convert(date, ''''' + convert(varchar, @START1, 23) 开头的标识符+ ''''', 23) 和日期
    • 您使用错误方式的子查询 请先运行 "select * from your_table_name where your_column your condition like equal greater then (select * from your_table_name where your_column )"
    • 对不起,我不明白。我的最终代码需要是什么样的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多