Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server MS SQL Server中的链接Informix表是否忽略条件?_Sql Server_Informix_Linked Tables - Fatal编程技术网

Sql server MS SQL Server中的链接Informix表是否忽略条件?

Sql server MS SQL Server中的链接Informix表是否忽略条件?,sql-server,informix,linked-tables,Sql Server,Informix,Linked Tables,我对MS SQL Server 2008r2中的链接Informix表有问题。当我查询这个表时,它似乎忽略了我传递给它的一些条件,而忽略了其他条件。例如,如果我在rowdate字段上放置条件,则执行计划的远程查询部分不会显示任何WHERE子句,但如果我在另一个字段(如ACD)上放置条件,则会显示WHERE子句 似乎它在rowdate字段上没有通过任何标准,但在所有其他字段上都通过了 我知道该字段在Informix端被索引。如果有帮助,我链接的表来自Avaya CMS,它通过OpenLink OD

我对MS SQL Server 2008r2中的链接Informix表有问题。当我查询这个表时,它似乎忽略了我传递给它的一些条件,而忽略了其他条件。例如,如果我在rowdate字段上放置条件,则执行计划的远程查询部分不会显示任何WHERE子句,但如果我在另一个字段(如ACD)上放置条件,则会显示WHERE子句

似乎它在rowdate字段上没有通过任何标准,但在所有其他字段上都通过了

我知道该字段在Informix端被索引。如果有帮助,我链接的表来自Avaya CMS,它通过OpenLink ODBC驱动程序链接

编辑:

据我所知,这是Informix Dynamic Server 2000,它位于Solaris上。该列显示为正确的日期数据类型。我试过通过“2010-08-03 00:00:00”、“2010-08-03”、“CONVERTdate”、“2010-08-03”等标准,还有一些其他的变化。当数据返回到SQL server时,其格式为yyyy-mm-dd

当我查看执行计划时,我可以看到带有所有其他条件的远程查询,后面是仅针对rowdate字段的过滤器


我知道rowdate是索引的,驱动程序通常会在我们在其他应用程序Business objects和MS Access中使用它时传递这些信息,它们没有问题,我设法找到了答案,但这是有史以来最奇怪的事情。我用不同的方式传递日期。我的默认设置是使用正常的YYYY-MM-DD,当然它不起作用,所以我尝试了YYYY-MMM-DD,仍然没有任何结果。在经历了很多组合之后,我发现了一个在Mmm-DD-YY有效的组合,而且它一定就是这样!2010年9月21日无效,但2010年9月21日有效

我想知道这是否只是Informix的一个奇怪的挂断或者驱动程序中的某个东西,不管怎样,它都可以工作

有没有人注意到美国人写日期月、日、年是多么奇怪?停下来想一想,你说2410是“四百一十二千”吗?最棒的是试着问问自己,美国独立日是哪一天?大多数美国人说“这很容易,你利米人这是7月4日”嗯,他们说的唯一正确的日期是他们获得独立的日期。我将让SO社区来看看下面的示例查询中的讽刺之处:

select *
from OPENQUERY (AVAYA, 'select row_date,starttime,intrvl,acd from root.hagent where
row_date = ''NOV-22-2012'' and acd = 1 and split = 1 and starttime = 1900')

顺便说一句,我设法通过MMM-DD-YYYY和MMM-DD-YYYY提取准确的数据。

哪个平台上的Informix版本?“rowdate”的类型是什么?据猜测,它是DATE,但它可能是DATETIME的变体之一,例如DATETIME YEAR TO DAY或DATETIME YEAR TO SECOND。驱动程序是否以相同的方式处理相同类型的任何其他列?从表面上看,这听起来像是“客户”方面的问题;也就是说,如果驱动程序不发送标准,服务器将无法使用它。您可能希望探索如何执行SET EXPLAIN,以便能够看到Informix DBMS所看到的SQL,并与您认为应该看到的SQL进行比较。