TIL/Coding Study - SQL

[programmers] SQL 고득점 Kit - SELECT: 흉부외과 또는 일반외과 의사 목록 출력하기

cch8ii 2025. 1. 15. 13:20

문제: 흉부외과 또는 일반외과 의사 목록 출력하기

코딩테스트 연습 - 흉부외과 또는 일반외과 의사 목록 출력하기 | 프로그래머스 스쿨

풀이코드

-- 코드를 입력하세요
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')
FROM DOCTOR
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC, DR_NAME

느낀 점

문제는 전체적으로 풀기 쉬웠지만 DATE_FORMAT 때문에 애를 먹긴 했다 ㅎㅎㅎ 날짜가 예시와 똑같이 나와야 한다는 조건이 중요한 조건이라고 생각하지 않고 있었는데 계속 틀려서 날짜를 봤더니 '2010-07-01 00:00:00' 이렇게 나와있었다. DATE 형인 이것을 시간을 다 빼고 '2010-07-01'로 만들기 위해선...? 

DATE_FORMAT

DATE_fORMAT이 필요하다. DATE_FORMAT은 날짜 형식을 설정할 수 있는 것으로 DATE_FORMAT(날짜, 형식) 처럼 사용하면 날짜를 지정한 형식으로 출력해준다. DATE_FORMAT 함수는 DATE, DATETIME, TIMESTAMP 형식의 열에 모두 사용할 수 있다. 

 

위 사진은 DATE_FORMAT 함수에서 사용할 수 있는 주요 형식 코드를 정리해놓은 표이다. 

자주 사용되는 포맷은 다음과 같다. 

## YYYY-MM-DD (날짜만 출력)
DATE_FORMAT(column_name, '%Y-%m-%d')

## MM/DD/YYYY (미국 스타일 날짜)
DATE_FORMAT(column_name, '%m/%d/%Y')

## YYYY-MM-DD HH:MM:SS (날짜와 시간)
DATE_FORMAT(column_name, '%Y-%m-%d %H:%i:%s')

## HH:MM AM/PM (12시간 형식 시간)
DATE_FORMAT(column_name, '%h:%i %p')

## 월 일, 연도 (예: January 15, 2025)
DATE_FORMAT(column_name, '%M %d, %Y')

## 요일 포함 날짜 (예: Wednesday, 15 January 2025)
DATE_FORMAT(column_name, '%W, %d %M %Y')

 

암기해야겠지...?