0606 til

looggi·2023년 6월 6일
0

TILs

목록 보기
87/114
post-thumbnail

자동차 대여 기록에서 장기/단기 대여 구분하기

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

SELECT HISTORY_ID, CAR_ID, date_format(start_date,'%Y-%m-%d') START_DATE, 
date_format(end_date,'%Y-%m-%d') END_DATE,
if(DATEDIFF(end_date,start_date)+1>=30, '장기 대여','단기 대여') RENT_TYPE
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
where year(start_date)= '2022' and month(start_date) = '09'
order by history_id desc

그동안 날짜 계산을 -로 잘 하고 있었다고 생각했는데 그냥 예외적인 상황이었나보다... 모지 오늘은 end_date-start_date 로 계산했는데 계속 틀렸다고 나와서 이것저것 바꿔보다가 실행 결과를 보니까 시작일이 09-28이고 종료일이 10-12인 로우가 단기 대여로 표시되어있었다 호달달... 그래서 진짜 이게 뭔가 싶다 무튼 앞으로는 그냥 DATEDIFF를 이용하는걸루

이런 저런 다른 방식들🔽

TO_CHAR(END_DATE, 'YYYY-MM-DD') AS END_DATE -> 오라클에서 쓰는 방식🥷
LEFT(A.START_DATE,10) START_DATE -> ok
LEFT(START_DATE,7) = '2022-09'

SELECT *,
if(DATEDIFF(end_date,start_date)+1>=30, '장기 대여','단기 대여') RENT_TYPE
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
where year(start_date)= '2022' and month(start_date) = '09'
order by history_id desc

헐 이게 된다 DATE_FORMAT처럼 손봐야하는 부분만 없으면 그냥 * 쓰고 뒤에 , 칼럼 쓰면 된다 wow

profile
looooggi

0개의 댓글