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