Oracle 11g을 (를) 처음으로 사용했습니다 & 질문에 대한 질문이 있습니다.Oracle 11g의 날짜 비교
Date
의 created_date
열이있는 테이블 dummy
가 있습니다.
created_date
+ 7 일이 오늘 날짜보다 작은 모든 레코드를 반환하는 쿼리를 원합니다.
Oracle 11g의 어떤 유형의 쿼리가이 작업을 수행합니까?
Oracle 11g을 (를) 처음으로 사용했습니다 & 질문에 대한 질문이 있습니다.Oracle 11g의 날짜 비교
Date
의 created_date
열이있는 테이블 dummy
가 있습니다.
created_date
+ 7 일이 오늘 날짜보다 작은 모든 레코드를 반환하는 쿼리를 원합니다.
Oracle 11g의 어떤 유형의 쿼리가이 작업을 수행합니까?
오라클은 너무
where table.created_date >= sysdate
and table.created_date < sysdate + 7
정확히 지금 정확히 지금 플러스 칠일 간의 행을 찾을 것입니다, 당신은 날짜 산술
+
를 사용할 수 있습니다. 당신은 시간 구성 요소를 포함하지 않는 경우
, 당신은
where trunc(table.created_date) >= trunc(sysdate)
and trunc(table.created_date) < trunc(sysdate) + 7
내가 rejj의 솔루션은 현재와 미래에 칠일 사이에 당신에게 기록을 줄 것이다 생각 trunc()
기능을 사용할 수 있습니다. 당신의 설명을 보면, 지난 7 일 이내에 그 기록을 원했던 것 같습니다. 나는 같이이 할 줄 : 이것은 더 명확 할 수
WHERE created_date <= SYSDATE
AND created_date >= SYSDATE - 7
, 그리고 것과 같습니다 TRUNC()를 사용하여 당신이 CREATED_DATE에 가지고있는 인덱스를 우회하는 최적화가 발생할 수 있음을
WHERE created_date BETWEEN SYSDATE AND (SYSDATE - 7)
가주의 , 기능 색인이 정의되어 있지 않은 한.
사용 간격 상수는
SELECT *
FROM DUMMY
WHERE CREATED_DATE >= TRUNC(SYSDATE) - INTERVAL '7' DAY
공유 같이 날짜 산술 명확하게하고 즐길 수 있습니다.
나는이 좋은 대답을 얻는 것이 행운이라고 생각합니다. 당신은 적어도 쿼리를 시도해야한다. - 또는 이것에 대한 약간의 정보는 꽤 기본적인 것들이므로 SQL을 읽어야한다. – Randy