0

This is my linked server which is Oracle linked to 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 데이터를 검색하기위한 조건으로 데이터를 필터링하여 datetime으로 정렬 할 수 있습니다.

답변

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 

날짜/시간 문자열에서 후미 0을 제거했습니다. 그들은 나를 곤경에 빠뜨리고있었습니다. 여기

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

내가 다시 후행 0을 제거 ... 오라클에 통과 쿼리를 수행하는 OPENQUERY를 사용하도록 할 것 인 것이다.

그 중 하나가 적합합니까?

노엘