Sql server SQL Server 2012中的Oracle链接服务器-日期列不起作用的查询

Sql server SQL Server 2012中的Oracle链接服务器-日期列不起作用的查询,sql-server,oracle11g,sql-server-2012,sql-server-2008-r2,linked-server,Sql Server,Oracle11g,Sql Server 2012,Sql Server 2008 R2,Linked Server,查询: SELECT DISTINCT RCPCODE FROM SMC..ICWGHC.C_JOBINFOHISTORY WHERE UPDATE_DATETIME >= '2017-01-14 13:08:49.0000000' AND UPDATE_DATETIME <= '2017-01-16 13:08:49.0000000' SELECT DISTINCT RCPCODE FROM SMC..ICWGHC.C_JOBINFOHISTORY WHERE COM

查询:

SELECT DISTINCT RCPCODE
FROM SMC..ICWGHC.C_JOBINFOHISTORY 
WHERE UPDATE_DATETIME >= '2017-01-14 13:08:49.0000000' 
  AND UPDATE_DATETIME <= '2017-01-16 13:08:49.0000000'

SELECT DISTINCT RCPCODE 
FROM SMC..ICWGHC.C_JOBINFOHISTORY 
WHERE COMPLETE_DATETIME BETWEEN '2017-01-16 06:52:38.0000000' 
                            AND '2017-01-16 12:52:38.0000000'
ORDER BY COMPLETE_DATETIME DESC
它确实返回数据


我想使用
介于
之间的条件来筛选数据,以便检索数据,以便可以使用日期时间进行排序。

我在SQL server中使用Oracle链接服务器时也遇到类似情况。我没有使用您使用的语法,因为我们通常用于这种类型的东西,所以我想我会尝试一下

字符串到日期的转换存在某种隐式的问题。试试这个

SELECT DISTINCT RCPCODE 
FROM SMC..ICWGHC.C_JOBINFOHISTORY 
WHERE COMPLETE_DATETIME BETWEEN CONVERT(DATETIME, '2017-01-16 06:52:38', 121)
                            AND CONVERT(DATETIME, '2017-01-16 12:52:38', 121)
ORDER BY COMPLETE_DATETIME DESC
注意,我从日期/时间字符串中删除了尾随的零。他们给我惹麻烦了

下面是使用OPENQUERY对Oracle进行直通查询的步骤

SELECT * 
FROM OPENQUERY(SMC, '
    SELECT DISTINCT RCPCODE 
    FROM ICWGHC.C_JOBINFOHISTORY 
    WHERE COMPLETE_DATETIME BETWEEN ''2017-01-16 06:52:38''
                AND ''2017-01-16 12:52:38''
    ORDER BY COMPLETE_DATETIME DESC')
我再次删除了尾随的零

这两个对你有用吗

诺埃尔

SELECT * 
FROM OPENQUERY(SMC, '
    SELECT DISTINCT RCPCODE 
    FROM ICWGHC.C_JOBINFOHISTORY 
    WHERE COMPLETE_DATETIME BETWEEN ''2017-01-16 06:52:38''
                AND ''2017-01-16 12:52:38''
    ORDER BY COMPLETE_DATETIME DESC')