【发布时间】:2021-03-15 12:08:09
【问题描述】:
我有一个有效的 T-SQL OPENQUERY 连接到一个 KISAM ODBC 数据库表,它根据昨天日期的单个日期字段上的 where 子句返回预期的行数:
DECLARE @TSQL varchar(8000), @MyDate varchar(10)
SET @MyDate = CONVERT(varchar(10), (DATEADD(dd, DATEDIFF(dd, 0, GETDATE()) - 1, 0)), 120)
SET @TSQL = 'SELECT * FROM OPENQUERY(KODBC_linked_server,''SELECT * from [table] WHERE date_column_1 = ''''' + @MyDate + ''''''')'
EXEC (@TSQL)
我需要扩展查询以在 where 子句中包含多个日期字段,但一直报错
用于链接服务器的 OLE DB 提供程序“MSDASQL”...
如何在 where 子句中传递多个日期字段?
【问题讨论】:
-
“我如何在 where 子句中传递多个日期字段?” 如果 KISAM 遵循与其他 RDBMS 相同的规则,并带有额外的
AND和OR布尔子句,或一个`IN`,取决于你的目标是什么。似乎这里的问题是关于如何查询 KISAM 数据库而不是如何编写 T-SQL。 -
这个KISAM工具有自己的查询工具吗?因为这里的问题是转义单引号的常见问题。
-
发布完整的错误 - 全部,包括 id、严重性等。并且不要缩写/截断实际的错误消息 - 省略号 (...) 对任何人都没有帮助。
-
感谢您的回复。拉努。是的,更多的是关于如何查询 KISAM 数据库。缺口。不是我知道或能找到的。摩尔。这是链接服务器“server”的完整错误 OLE DB 提供程序“MSDASQL”返回消息“[Kerridge][KISAM ODBC Driver][KISAM]syntax error in: from [table] where (col1 = @ >>> MyDate
-
KISAM 是否支持
@MyDate之类的变量?我猜不会。你需要找出答案。我想您需要输入日期文字而不是变量
标签: sql-server openquery