SQL
[MySQL] DATEDIFF / ์๋์ฐจ ํ๊ท ๋์ฌ ๊ธฐ๊ฐ ๊ตฌํ๊ธฐ
O'mil
2024. 5. 1. 15:56
728x90
๐ ๋งํฌ
์๋์ฐจ ํ๊ท ๋์ฌ ๊ธฐ๊ฐ ๊ตฌํ๊ธฐ
๐ ๋ฌธ์ ์ค๋ช
Table: CAR_RENTAL_COMPANY_RENTAL_HISTORY
- ํ๊ท ๋์ฌ ๊ธฐ๊ฐ์ด 7์ผ ์ด์์ธ ์๋์ฐจ๋ค์ ์๋์ฐจ ID์ ํ๊ท ๋์ฌ ๊ธฐ๊ฐ(์ปฌ๋ผ๋ช
: AVERAGE_DURATION) ๋ฆฌ์คํธ ์ถ๋ ฅ
ํ๊ท ๋์ฌ ๊ธฐ๊ฐ์ ์์์ ๋๋ฒ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ
๊ฒฐ๊ณผ๋ ํ๊ท ๋์ฌ ๊ธฐ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ, ์๋์ฐจ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
โ ์๋ฌธ์
- ๋ ์ง ๊ณ์ฐ์ ์ด๋ป๊ฒ ํด์ผ ํ ๊น?
๐ DATEDIFF
- ๋ ์ง ๊ณ์ฐ ์ ์ฌ์ฉ (๋ ์ง1 - ๋ ์ง2)
- ๋ ๋ ์ง์ ์ฐจ์ด๋ฅผ ์๋ ค์ค
- (+1์ ํด์ผ ๊ธฐ๊ฐ์ ์ ์ ์์)
DATEDIFF(๋ ์ง1, ๋ ์ง2)
์์ )
SELECT DATEDIFF('2023-05-01', '2024-05-01');
// -366
๐ TIMESTAMPIFF
- ๋ ์ง ๊ณ์ฐ ์ ์ฌ์ฉ
- ๋จ์์ ๋ง์ถฐ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅํจ
- ๋จ์
- SECOND: ์ด
- MINUTE: ๋ถ
- HOUR: ์
- DAY: ์ผ
- WEEK: ์ฃผ
- MONTH: ์
- QUARTER: ๋ถ๊ธฐ
- YEAR: ์ฐ
TIMESTAMPDIFF(๋จ์, ๋ ์ง1, ๋ ์ง2);
์์ )
SELECT TIMESTAMPDIFF(MONTH, '2023-05-01', '2024-05-01');
// 12
๐ป ์ฝ๋
SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE) + 1), 1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING AVERAGE_DURATION > 6
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC;
๐ก ๊ฒฐ๊ณผ
๐Reference
https://extbrain.tistory.com/78
728x90