문제:
DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림
차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.
✅ 확인해야할 조건
1. 진료과가 CS OR GS 인 데이터만 추출
2. 추출할 컬럼은 DR_NAME, DR_ID, HIRE_YMD, MCDP_CD
3. 고용일자를 기준으로 내림차순, 이름을 기준으로 오름차순 정렬
4. 고용일자 date time 출력 형식은 '년-월-일' 이여야 함
코드
-- 코드를 입력하세요
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD,'%Y-%m-%d') FROM DOCTOR
WHERE MCDP_CD LIKE 'GS' OR MCDP_CD LIKE 'CS'
ORDER BY HIRE_YMD DESC, DR_NAME ASC;
출력 결과
DATE TIME 포맷
⬜️ DATE_FORMAT 사용 방법
:날짜 포맷을 변경해주는 함수
DATE_FORMAT(date,format)
첫번째 인수인 date 에는 포맷을 변경하고 싶은 값을 지정한다.
두번째 인수인 format에는 변경하고 싶은 날짜 타입을 입력한다.
따라서 위의 예시에서는 년-월-일 형식의 데이터 포맷을 출력해야 했기에 DATE_FORMAT(날짜,'%Y-%m-%d') 를 이용하여 변경해주었다.
포맷 형태는 보통 정해져 있다
%Y : 연 ( 4자리 연도 )
%y : 연 ( 2자리 연도 )
%m : 월 ( 2자리 )
%c : 월 (1자리, 10보다 작을 경우)
%M : 월 (이름 <january,Febuary...>)
%b : 월 (줄인 이름 <jan,Feb...>)
%d : 일 (2자리)
%e : 일 (1자리, 10보다 작을 경우)