조건별로 분류하여 주문상태 출력하기 & DATETIME에서 DATE로 형 변환

는는·2023년 1월 30일
0

SQL - 문제 풀이

목록 보기
19/77

조건별로 분류하여 주문상태 출력하기

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

예시를 보면 out_date를 년월일로 변경해주고 5월 1일 기준으로 출고여부 컬럼을 하나 만들어줘야합니다.

일단 food_order 테이블에서 지정된 컬럼과, out_date를 년월일로 만들어 불러오겠습니다.

SELECT order_id,product_id, date_format(out_date,"%Y-%m-%d") out_date
FROM food_order

이제 출고 여부 칼럼을 만들어줘야하는데요. 저는 CASE문을 이용해 가져오겠습니다.

out_date, 출고 일자가 5월 1일이나, 이전이라면 출고완료, 5월 1일 이후 날짜는 출고 대기, 출고일자 값이 없으면 출고미정으로 출력해줍니다.

CASE WHEN out_date <="2022-05-01" THEN "출고완료" 
WHEN out_date >= "2022-05-01" THEN "출고대기" ELSE "출고미정" END AS 출고여부

이 값을 SELECT절에 적용해주고, order_id 기준으로 오름차순 정렬해주면 정답입니다.

ORDER BY order_id

정답

SELECT order_id,product_id, date_format(out_date,"%Y-%m-%d"), 
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

DATETIME에서 DATE로 형 변환

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

들어온 날짜를 년-월-일로 변경해줘야는 문제입니다.

SELECT 절에서 DATE_FORMAT을 이용해 년월일을 변경해 주면 정답입니다.

정답

SELECT animal_id, name, date_format(datetime,'%Y-%m-%d') AS 날짜
FROM animal_ins
ORDER BY animal_id

0개의 댓글