오라클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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)