자동차 대여 기록에서 장기/단기 구분하기(DATEDIFF)
DATEDIFF(종료일, 시작일)
종료일과 시작일 사이의 기간을 반환해 주는 함수
DATE_ADD(기준 날짜, INTERVAL) | 날짜 or 시간 더하기 |
DATE_SUB(기준 날짜, INTERVAL) | 날짜 or 시간 빼기 |
DATEDIFF(종료일, 시작일) | 두 날짜 간 일수 계산 |
TIMEDIFF(종료일, 시작일) | 두 날짜 간 시간 계산 |
PERIOD_DIFF(시작일, 종료일) | 두 날짜간 개월 계산 |
TIIMESTAMPDIFF(unit, 시작일, 종료일) | 시간, 개월 수 등 여러 가지 형태의 계산을 할 수 있는 함수 |
더보기
-- DATE_ADD()
SELECT
DATE_ADD('2024-06-15 12:30:00', INTERVAL 1 YEAR) -- 2025-06-15 12:30:00
DATE_ADD('2024-06-15 12:30:00', INTERVAL -1 YEAR) -- 2023-06-15 12:30:00
DATE_ADD('2024-06-15 12:30:00', INTERVAL 1 MONTH) -- 2024-07-15 12:30:00
DATE_ADD('2024-06-15 12:30:00', INTERVAL 1 DAY) -- 2024-06-16 12:30:00
DATE_ADD('2024-06-15 12:30:00', INTERVAL 1 HOUR) -- 2024-06-15 13:30:00
DATE_ADD('2024-06-15 12:30:00', INTERVAL 1 MINUTE) -- 2024-06-15 12:31:00
DATE_ADD('2024-06-15 12:30:00', INTERVAL 1 SECOND) -- 2024-06-15 12:30:01
FROM DUAL
;
-- DATE_SUB()
SELECT
DATE_SUB('2024-06-15 12:30:00', INTERVAL 1 YEAR) -- 2023-06-15 12:30:00
DATE_SUB('2024-06-15 12:30:00', INTERVAL -1 YEAR) -- 2025-06-15 12:30:00
DATE_SUB('2024-06-15 12:30:00', INTERVAL 1 MONTH) -- 2024-05-15 12:30:00
DATE_SUB('2024-06-15 12:30:00', INTERVAL 1 DAY) -- 2024-06-14 12:30:00
DATE_SUB('2024-06-15 12:30:00', INTERVAL 1 HOUR) -- 2024-06-15 11:30:00
DATE_SUB('2024-06-15 12:30:00', INTERVAL 1 MINUTE) -- 2024-06-15 12:29:00
DATE_SUB('2024-06-15 12:30:00', INTERVAL 1 SECOND) -- 2024-06-15 12:29:59
FROM DUAL
;
-- DATEDIFF()
-- 날짜 포맷에 시간이 있는 경우 무시됨.
-- 입력값이 날짜 범위를 벗어나는 경우, NULL 반환
SELECT
DATEDIFF('2024-06-15 22:00:00', '2024-06-01 16:00:00') -- 14
FROM DUAL
;
-- TIMEDIFF()
-- 입력값이 날짜 범위를 벗어나는 경우, NULL 반환
SELECT
DATEDIFF('2024-06-15 22:00:00', '2024-06-14 16:00:00') -- 30:00:00
FROM DUAL
;
-- PERIOD_DIFF()
SELECT
PERIOD_DIFF('2401', '2406') -- -5
PERIOD_DIFF('202406', '202310') -- 8
FROM DUAL
;
-- TIIMESTAMPDIFF()
SELECT
TIIMESTAMPDIFF(MONTH, '2023-11-15', '2024-06-15') -- 7
FROM DUAL
;
조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기(CONCAT + LIMIT)
CONCAT(문자열 1, 문자열 2,... , 문자열 n)
[문자열 1] ~ [문자열 n]까지 연결해 주는 함수
LIMIT
ORACLE의 FETCH ONLY와 같은 의미
Front End 개발자 찾기(SUM + &)
이전에 '조건에 맞는 개발자 찾기'문제를 해결했을 때의 기억을 더듬어서 & 연산자를 사용해야 되겠다고 생각함. 하지만 & 연산자는 1대 1의 관계이기 때문에 한쪽에 여러 개를 설정할 수가 없었다. 그래서 SUM() 함수를 사용하여 하나로 합쳐주었다.
더보기
-- 문법 오류
WHERE SKILL_CODE & (
SELECT
CODE
FROM SKILLCODES
WHERE CATEGORY = 'Front End'
)
-- 수정
WHERE SKILL_CODE & (
SELECT
SUM(CODE)
FROM SKILLCODES
WHERE CATEGORY = 'Front End'
)
300x250
'MySQL' 카테고리의 다른 글
[MySQL] 프로그래머스 SQL 문제 해결하면서 몰랐던 개념 정리 (2) (1) | 2024.06.14 |
---|---|
[MySQL] 프로그래머스 SQL 문제 해결하면서 몰랐던 개념 정리 (1) (1) | 2024.06.13 |