코딩테스트

[Programmers - MySQL ] 흉부외과 또는 일반외과 의사 목록 출력하기

효쨩 2024. 4. 9. 14:18

📚 풀이

SELECT  dr_name, dr_id, mcdp_cd, DATE_FORMAT(hire_ymd, '%Y-%m-%d')
FROM  doctor
WHERE  mcdp_cd IN ('CS', 'GS')
ORDER BY hire_ymd DESC

 

📚 DATE_FORMAT

DATETIME 타입: YYYY-MM-DD hh:mm:ss
DATE 타입: YYYY-MM-DD
SELECT DATE_FORMAT('19980323', '%y%m%d')→ 980323
SELECT DATE_FORMAT('19980323', '%Y.%m.%d')→ 1998.03.23
SELECT DATE_FORMAT('19980323', '%Y/%m/%d')→ 1998/03/23
SELECT DATE_FORMAT('19980323123000', '%Y.%m.%d %H:%i:%S')→ 1998.03.23 12:30:00
SELECT DATE_FORMAT('19980323123000', '%Y.%m.%d %H:%i:%S %W')→ 1998.03.23 12:30:00 Wednesday

 

 

DATE_FORMAT(date,format)

  • date문자열 에 따라 값의 형식을 지정
  • format 인수 중 하나라도 NULL이면 NULL을 반환
  • format 형식 지정자 문자 앞에 문자 %가 필요

%a 축약된 요일 이름( Sun.. Sat)
%b 월 이름 약어( Jan.. Dec)
%c 월, 숫자( 0.. 12)
%D 날짜에 영어 접미사( 0th, 1st, 2nd, 3rd, …) 를 붙입니다.
%d 날짜, 숫자( 00.. 31)
%e 날짜, 숫자( 0.. 31)
%f 마이크로초( 000000.. 999999)
%H 시간 ( 00.. 23)
%h 시간 ( 01.. 12)
%I 시간 ( 01.. 12)
%i 분, 숫자( 00.. 59)
%j 연단위 일자 ( 001.. 366)
%k 시간 ( 0.. 23)
%l 시간 ( 1.. 12)
%M 월 ( January.. December)
%m 월, 숫자( 00.. 12)
%p AM또는PM
%r 시간, 12시간( hh:mm:ss다음에 AM또는 PM)
%S 초( 00.. 59)
%s 초( 00.. 59)
%T 시간, 24시간( hh:mm:ss)
%U 주( 00.. 53), 주의 첫 번째 날은 일요일
%u 주( 00.. 53), 주의 첫 번째 날은 월요일
%V 주( 01.. 53), 주의 첫 번째 날은 일요일 
%v 주( 01.. 53), 주의 첫 번째 날은 월요일 
%W 요일 이름 ( Sunday.. Saturday)
%w 요일( 0=일요일.. 6=토요일)
%X 일요일이 주의 첫날인 주의 연도, 숫자, 4자리. 함께 사용%V
%x 월요일이 주의 첫 번째 날인 주의 연도, 숫자, 4자리. 함께 사용%v
%Y 연도, 숫자, 4자리
%y 연도, 숫자(2자리)
%% 문자 그대로의 %문자
%x x, 위에 나열되지 않은 " x" 의 경우

참고