🛠️Skill/CodingTest
[프로그래머스] Lv3. 조건별로 분류하여 주문상태 출력하기
Istj_eff
2022. 11. 24. 23:42
문제
- OUT_DATE 날짜가 5월 1일까지인것은 '출고완료'
5월 1일 이후인것은 '출고대기'
그외에는 '출고미정' 출력
→ CASE WHEN 또는 IF 문 사용
정답코드
# 1
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d') OUT_DATE
, CASE WHEN out_date > '2022-05-01' THEN '출고대기'
WHEN out_date <= '2022-05-01' THEN '출고완료'
ELSE '출고미정'
END AS '출고여부'
FROM FOOD_ORDER
ORDER BY order_id
# 2
SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, '%Y-%m-%d'),
CASE
WHEN OUT_DATE IS NULL THEN '출고미정'
WHEN DATEDIFF(OUT_DATE, "2022-05-01") > 0 THEN '출고대기' -- 출고날짜에서 5월 1일 빼기
ELSE '출고완료'
END AS '출고여부'
FROM FOOD_ORDER ORDER BY ORDER_ID ASC;
2022.11.24 - [SQL/SQL 문법] - [SQL문법] MySQL/ DATEDIFF, TIMESTAMPDIFF (날짜 차이)
[SQL문법] MySQL/ DATEDIFF, TIMESTAMPDIFF (날짜 차이)
날짜간의 차이를 가져오는 함수 : DATEDIFF, TIMESTAMPDIFF DATEDIFF DATEDIFF(날짜1, 날짜2) # = 날짜1 - 날짜2 TIMESTAMPDIFF TIMESTAMPDIFF(단위, 날짜1, 날짜2)
dataanalysisdot.tistory.com