0

This is my linked server which is Oracle linked to SQL Server 2012甲骨文在SQL Server 2012中的链接服务器 - 与DATE列不工作

查询的查询:

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 

都与BETWEEN查询和 “> =” 为条件Date列没有工作。

如果我使用此查询:

SELECT DISTINCT RCPCODE 
FROM SMC..ICWGHC.C_JOBINFOHISTORY 

它并返回数据。

我想筛选数据与BETWEEN条件检索数据,以便我可以排序日期时间。

回答

1

我与SQL Server中的Oracle链接服务器有类似的情况。因为我们通常使用OPENQUERY来处理这类事情,所以我还没有使用过你的语法,所以我想我会试试看。

隐含地发生字符串到日期转换有一些问题。试试这个...

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') 

我拆了再尾随零。

为你工作吗?

Noel