본문 바로가기
🛠️Skill/CodingTest

[프로그래머스] Lv3. 조건별로 분류하여 주문상태 출력하기

by Istj_eff 2022. 11. 24.

문제

  • 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

 

댓글