Oracle DB에서 날짜를 대체하는 방법은 무엇입니까? [복제]

Jan 23 2021

지난 2 년 동안의 데이터를 나타 내기 위해 테이블에서 결과를 얻기 위해 2 개의 날짜 (현재 날짜 및 미용 _ 날짜)를 대체하고 싶습니다. 다음 SELECT 문이 있습니다.

SELECT count(c_id) 
  INTO counter 
  FROM RESERVATIONS r
 WHERE r.customer_id = 1 
   AND (Sysdate - r.hairdressing_date) / 365 < 2;

사용자 지정이지만 코드의 '/ 365'부분에 대해 잘 모르겠습니다.

필요한 데이터를 올바르게 얻는 방법은 무엇입니까? 이 줄의 올바른 구현을 작성할 수 있습니까?

답변

2 ThomasKirchhoff Jan 23 2021 at 03:05

다음 MONTHS_BETWEEN()과 같은 기능을 사용 하십시오.

SELECT MONTHS_BETWEEN(TRUNC(SYSDATE), TO_DATE('22.01.2019', 'DD.MM.YYYY'))/12 
  FROM DUAL;

귀하의 경우를 고려하여 다음으로 되돌립니다.

SELECT count(c_id) 
  INTO counter 
  FROM RESERVATIONS r     
 WHERE r.customer_id = 1 
   AND MONTHS_BETWEEN(TRUNC(SYSDATE), hairdressing_date)/12 < 2;