알고리즘/프로그래머스

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

waterground 2022. 10. 16. 21:47

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/131113

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

2. 풀이 

  • case문을 사용해서 조건에 맞는 출고 상태를 출력한다
    • OUT_DATE가 NULL이면 '출고 미정'
    • DATEDIFF를 이용해 OUT_DATE와 기준 날짜(2022-05-01)의 차를 구하고, 이를 사용해 출고 상태를 구한다.

 

3. 코드

SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE, "%Y-%m-%d") AS OUT_DATE, 
        CASE
          WHEN OUT_DATE IS NULL THEN "출고미정"
          WHEN DATEDIFF(OUT_DATE, "2022-05-01") <= 0 THEN "출고완료"
          WHEN DATEDIFF(OUT_DATE, "2022-05-01") > 0 THEN "출고대기"
        END AS 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID ASC;