728x90
반응형
..? 이게 왜 안되는 지 모르겠음..?
- date()가 적용이 안됌.
SELECT HISTORY_ID, CAR_ID, date(START_DATE), END_DATE,
case when (END_DATE - START_DATE) >= 30 THEN '장기 대여'
else '단기 대여' end as RENT_TYPE
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
order by HISTORY_ID;
- mysql이 되어야 하는데 이유를 모르겠음.
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) >= 30 THEN '장기 대여'
ELSE '단기 대여' END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
ORDER BY HISTORY_ID;
- 일단 문제를 제대로 읽지 않아서 desc 도 놓쳤고,
- 2022-09 조건도 놓쳤음. => 이것도 like는 string만 되기 때문에 between and 로 해줘야 함.
- date_format(칼럼, '%Y-%m-%d') 이거 쓰는 것은 괜찮은데.
- datediff(시작 날짜, 종료 날짜) 여기가 문제였음.
- 시작 날짜도 포함되어야 하기 때문에 +1 으로 해줘야 함.
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) + 1>= 30 THEN '장기 대여'
ELSE '단기 대여' END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE BETWEEN '2022-09-01' AND '2022-09-30'
ORDER BY HISTORY_ID desc;
728x90
반응형
'Data Science > SQL' 카테고리의 다른 글
[프로그래머스 sql] substring()에 익숙해질 것. (0) | 2025.03.31 |
---|---|
[프로그래머스 sql] select에서도 like 조건문 가능 (0) | 2025.03.31 |
[프로그래머스 sql] count()는 null 못셈 (0) | 2025.03.20 |
[프로그래머스 sql] 비트연산.. 너무 익숙해지지가 않음.. (0) | 2025.03.20 |
[Elice sql] 서브쿼리에서는 on 아니고 where로 조건 줄 것. exists 사용이 더 나음. (0) | 2025.03.13 |