2012-08-04 3 views
1

40 일 이상되는 날짜 만 어떻게 선택합니까?날짜 및 시간 프레임 선택

SELECT name, gender, WardNo, StartOfOccupancy, EndOfOccupancy 
    FROM Patient, Occupancy 
    WHERE EndOfOccupancy > 40 StartOfOccupancy; 

나는 그들이 자신의 점유를 종료하기 전에 사람이 40 일 동안 작업에왔다 데이터를 보여주고 싶은, 내가 많은 varients을 시도했지만 최종 라인을 구성하고 유지하는 방법을 알아낼 수 없습니다 이 오류가 발생합니다 :

ORA-00932: inconsistent datatypes: expected DATE got NUMBER 

감사합니다.

답변

0

SELECT name, gender, WardNo, StartOfOccupancy, EndOfOccupancy 
FROM Patient, Occupancy 
WHERE EndOfOccupancy > DATE_ADD(StartOfOccupancy, INTERVAL 40 DAY) 
2

당신은 당신이 당신이 원하는지고 있는지 확인하기 위해 경계 사례를 확인하는 것이 좋습니다하려고합니다. Oracle DATE 데이터 유형을 사용하는 경우 TRUNC (EndOfOccupancy)와 TRUNC (StartOfOccupancy)를 비교하여 시간 구성 요소를 제거 할 수 있습니다.

SELECT name, gender, WardNo, StartOfOccupancy, EndOfOccupancy 
    FROM Patient, Occupancy 
    WHERE TRUNC(EndOfOccupancy) - TRUNC(StartOfOccupancy) >= 40;