https://school.programmers.co.kr/learn/courses/30/lessons/131120?language=oracle#

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

My Answer

SELECT MEMBER_ID 
    , MEMBER_NAME
    , GENDER
    , TO_CHAR(DATE_OF_BIRTH, 'YYYY-MM-DD') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE GENDER = 'W' 
    AND TLNO IS NOT NULL 
    AND EXTRACT(MONTH FROM DATE_OF_BIRTH) = 3
ORDER BY MEMBER_ID ASC;
TO_CHAR

DATE, TIMESTAMP 등에서 사용 가능
디폴트 DATE 포맷으로 바꿔줌

  • YY, RR의 차이
    - 둘다 연도의 마지막 2자리 출력
    • RR은 시스템상(1900년대) 년도를 기준으로 하여 이전 50년도~이후 49년도까지는 기준년도,
      이 범위를 벗어날 경우 다시 2100년도 기준으로 이전50년도~이후 49년까지의 값 출력
    • YY는 무조건 시스템상의 연도를 따름
   SELECT TO_CHAR(SYSDATE, 'MM/DD/RRRR')
   SELECT TO_CHAR(SYSDATE, 'WW')
   SELECT TO_cHAR(SYSDATE, 'DD' "of" MONTH')
EXTRACT

datetime이나 interval 값으로부터 특정 시각정보 추출
특정 날짜/시간 값이나 날짜 값을 가진 표현식으로부터 원하는 날짜 영역을 추출

SELECT EXTRACT(month FROM order_date)
SELECT EXTRACT(year FROM TO_DATE(hire_date, 'DD-MON-RR'))

 
 
도대체 왜 안 돼 왜 자꾸 틀렸어!?!?!? 하다보면 조건 하나씩 까먹은걸 발견하게 된다..
문제 자체가 3월에 태어난 여성 회원 출력인데 3월을 까먹었음...하..........!

+ Recent posts