Oracle 기준으로, 가입 후 한 달 쿠폰의 만료일을 구하는 다음 S… | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 9회
Oracle 기준으로, 가입 후 한 달 쿠폰의 만료일을 구하는 다음 SQL의 실행 결과로 옳은 것은?

[회원]

회원번호가입일
12026-01-31
22026-02-28
32026-03-15
42026-04-30
52026-05-30
SELECT 회원번호,
       TO_CHAR(ADD_MONTHS(가입일, 1), 'YYYY-MM-DD') AS 만료일
  FROM 회원
 ORDER BY 회원번호;
1
회원번호만료일
12026-03-02
22026-03-30
32026-04-14
42026-05-30
52026-06-29
2
회원번호만료일
12026-02-28
22026-03-31
32026-04-15
42026-05-31
52026-06-30
3
회원번호만료일
12026-02-28
22026-03-28
32026-04-15
42026-05-30
52026-06-30
4
회원번호만료일
12026-03-03
22026-03-31
32026-04-15
42026-05-31
52026-06-30
해설

ADD_MONTHS 는 입력일이 그 달의 말일이면 결과도 결과 월의 말일로 맞추므로 2월 28일은 3월 31일, 4월 30일은 5월 31일이 된다.

1월 31일처럼 결과 월에 같은 날이 없으면 그 달 말일인 2월 28일이 되고, 말일이 아닌 3월 15일·5월 30일은 날짜만 그대로 옮겨진다.

  • 말일 규칙을 빼고 같은 날짜로만 옮기면 3월 28일·5월 30일이 나온다.
  • 존재하지 않는 2월 31일을 넘겨 3월로 보내지 않고 2월 말일에서 멈춘다.
  • 한 달 더하기는 30일 더하기가 아니므로 3월 2일 같은 값이 나오지 않는다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 9회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기