오라클SQL에서 날짜에 대여료를 구하는 쿼리
조회수 469회
안녕하세요 초보개발자입니다.
- 반납날짜 - 대여날짜 = 날짜
- 날짜 + 렌트료 = 결제금액
- 결제금액+ 보험료 = 최종결제금액
이런식으로 구상해보고싶은데
연산을 어떤식으로 해야할지 몰라 이렇게 질문드립니다.
1 답변
-
날짜 + 렌트료 = 결제금액
가 아니라
날짜 * 렌트료 = 결제금액
이겠죠?SELECT (TO_DATE('2020-04-01 10:05', 'YYYY-MM-DD HH24:MI') - TO_DATE('2020-03-27 21:35', 'YYYY-MM-DD HH24:MI')) * 렌트료 + 보험료 FROM MY_TABLE
이런식으로 하면 되는데 문제는 날짜 계산입니다. 위 예만 봐도 날짜가 딱 떨어지지 않아
4.52083333333333333333333333333333333333
라는 값이 나오거든요. 시간 단위로 대여료를 책정할 게 아니라면 소수점 이하를 버릴지, 올릴지를 결정해야 하는데, 이건 정책에 따라 달라지니 한 번 고민해보세요.-- 날짜 포맷은 생략 SELECT -- 5일 TO_DATE('2020-04-01 10:05:00') - TO_DATE('2020-03-27 10:05:00'), -- 4.5208333333일 TO_DATE('2020-04-01 10:05:00') - TO_DATE('2020-03-27 21:35:00'), -- 5.416666666일 TO_DATE('2020-04-01 20:00:00') - TO_DATE('2020-03-27 10:00:00') FROM DUAL
기준 시간을 정해서 그 시간을 넘기면 대여일 +1로 친다... 뭐 이런 정책도 있을 수 있습니다.
- 네 답변해주신 부분에 우려가 있어서 SELECT TRUNC(TO_DATE('2020-04-19'),'DD')+1 - TRUNC(TO_DATE('2020-04-18'),'DD') FROM RENT_RELATIONS; 윤우섭 2020.4.27 17:27
- 이렇게 해보아서 나온 날짜값이 있는데 그 값으로 렌트료를 곱해야하는데 거기서 막히네요 윤우섭 2020.4.27 17:27
- 예시로 든 쿼리는 결과가 숫자 2인데 여기서 곱하기를 하는게 막힌다는 말인가요? 편집요청빌런 2020.4.27 17:33
- 네 답변주신 걸로 참고해서 응용해서 반납날짜-대여날짜 = 날짜값을 구했는데 이제 날짜값을 가지고 렌트료를 곱하는 쿼리에서 막히네요.. 윤우섭 2020.4.27 17:42
- 혹시 날짜와 렌트료가 각각 다른 테이블에 있는것 때문에, 쿼리 한 방으로 어떻게 조회해야 할 지가 막막하신건가요? 편집요청빌런 2020.4.27 17:50
- 조인을 하고 연산을 해야할것같은데 막히네요 윤우섭 2020.4.28 09:45
- ERD와 함께 질문을 다시 올려보세요. 편집요청빌런 2020.4.28 09:50
댓글 입력