String, date
문제풀이
A. DATEDIFF, CASE, DATE_FORMAT 사용
SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE,
DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE,
CASE
WHEN DATEDIFF(END_DATE, START_DATE) >= 29 THEN '장기 대여'
ELSE '단기 대여' END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE LIKE '2022-09%'
ORDER BY HISTORY_ID DESC
※ DATEDIFF(날짜1, 날짜2) : 날짜1 - 날짜2(일수만 계산)
→ 문제는 대여일 계산이므로 첫날도 포함해야함 따라서 +1을 추가로 넣어줘야함
※ DATE_FROMAT(컬럼명, '%Y-%m-%d ) : 날짜타입변경
※ CASE WHEN 조건 THEN 결과 ...... (1)
WHEN 조건 THEN 결과 ...... (2) 반복될경우 추가
ELSE 결과 END
틀렸던 오답
'장기 대여', '단기 대여' 를 '장기대여', '단기대여' 처럼 띄어쓰기를 안함....
'필기ㆍ코테 공부 > SQL' 카테고리의 다른 글
[프로그래머스/MYSQL] 주문량이 많은 아이스크림들 조회하기 (0) | 2025.01.12 |
---|---|
[프로그래머스/MYSQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2025.01.05 |
[프로그래머스/MYSQL] 자동차 평균 대여 기간 구하기 (0) | 2025.01.05 |
[프로그래머스/MYSQL] 조건에 맞는 사용자 정보 조회하기 (0) | 2025.01.05 |
[프로그래머스/MYSQL] 카테고리 별 상품 개수 구하기 (1) | 2025.01.05 |