https://school.programmers.co.kr/learn/courses/30/lessons/151138
# MySQL - SOL.1 - DATEDIFF(끝 날짜, 시작 날짜) & WHERE LIKE '% %'
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 LIKE '2022-09%'
ORDER BY HISTORY_ID DESC;
# MYSQL - SOL.2 - BETWEEN
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 00:00:00' AND '2022-09-30 23:59:59'
ORDER BY HISTORY_ID DESC;
# MYSQL - SOL.3 - WHERE EXTRACT(열 FROM 테이블) =
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 EXTRACT(YEAR_MONTH FROM START_DATE) = 202209
ORDER BY HISTORY_ID DESC;
** CASE WHEN THEN문 : 조건에 해당하는 값을 반환하는 함수
CASE
WHEN 조건1 THEN 값1
ELSE 값2
END
# 조건1을 만족하면 값1, 만족하지 않으면 값2를 반환한다
** DATE_FORMAT(날짜, 형식) : 날짜 데이터 출력 형식
** DATEDIFF() : 두 날짜를 비교하여 날짜의 차이 계산
- DATEDIFF(DAY, '시작 날짜' , '끝나는 날짜' ) AS [일 차이]
- DATEDIFF(MONTH, '시작 날짜' , '끝나는 날짜' ) AS [월 차이]
- DATEDIFF(YEAR, '시작 날짜' , '끝나는 날짜' ) AS [년 차이]
[MSSQL] 날짜, 시간 차이 일수 계산 (DATEDIFF)
SQL Server에서 시작일자와 종료일자 사이의 일수 또는 시간, 분, 초 등의 차이를 계산할 때 DATEDIFF 함수를 사용한다. DATEDIFF 함수는 두 날짜를 비교하여 DATEPART 구분자에 따라서 차이를 계산하여 결
gent.tistory.com
[SQL] 자동차 대여 기록에서 장기/단기 대여 구분하기(프로그래머스/MySQL/Level 1)
안녕하세요! 데코입니다! 오늘은 프로그래머스 코딩테스트 연습에 있는 "자동차 대여 기록에서 장기/단기 대여 구분하기" 문제를 포스팅하려고 합니다! 바로 포스팅 시작할게요! :) (출처 : https:/
kkw-da.tistory.com
'Computer language > SQL' 카테고리의 다른 글
| [프로그래머스/SQL 고득점 Kit] SELECT - 3월에 태어난 여성 회원 목록 출력하기 (1) | 2024.11.09 |
|---|---|
| [프로그래머스/SQL 고득점 Kit] SELECT - 재구매가 일어난 상품과 회원 리스트 구하기 (1) | 2023.02.23 |
| [프로그래머스/SQL 고득점 Kit] String, Date - 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2023.02.17 |
| [프로그래머스/SQL 고득점 Kit] IS NULL - 나이 정보가 없는 회원 수 구하기 (0) | 2023.02.17 |
| [프로그래머스/SQL 고득점 Kit] IS NULL - 이름이 있는 동물의 아이디 (0) | 2023.02.17 |