2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents
1. 특정 날짜에 대한 일정량의 덧셈/뺄셈
Oracle에서는 날짜형식의 데이터에 +1, -2와 같은 작업을 하면 알아서 날짜로 변환하여 연산결과를 반환해줍니다. 예를 들어, '2001-03-02'에 1을 더하면 자동으로 '2001-03-03'으로 계산됩니다. 반면, MySQL에서는 날짜형에 직접 숫자를 더하는 방식은 지원되지 않습니다. MySQL에서 날짜 연산을 하려면 DATE_ADD() 함수나 ADDDATE() 함수를 사용해야 합니다.
아래의 쿼리는 '2001-03-03'를 반환합니다.
SELECT DATE_ADD('2001-03-02', INTERVAL 1 DAY) AS next_date;
만약 덧셈이 아니라 뺄셈을 하게되면 DATE_SUB 함수를 활용하면 됩니다. 아래 쿼리는 '2001-03-01'을 반환합니다.
SELECT DATE_SUB('2001-03-02', INTERVAL 1 DAY) AS previous_date;
꼭 일자 계산에만 적용되는 것은 아닙니다. 월 단위 계산도 아래와 같이 가능합니다.
SELECT DATE_SUB('2001-03-02', INTERVAL 1 MONTH) AS previous_month;
2. 날짜 간 연산
날짜와 날짜 간의 차이를 구하고 싶다면 DATEDIFF 함수를 쓰면 됩니다. Oracle/MySQL 공통 문법입니다.
(1) Syntax
DATEDIFF(unit, start_date, end_date)
unit: 날짜 차이를 계산할 단위 (DAY, MONTH, YEAR 등)
(2) 활용 예시
SELECT DATEDIFF(DAY, '2024-01-01', '2024-03-23') AS date_diff;
'프로그래밍 > SQL, Hive, SAS 관련 정보' 카테고리의 다른 글
[SQL문제풀이 - Having 절 조건주기] - Customers Who Bought All Products (0) | 2025.04.07 |
---|---|
[SQL 기초] Join의 on 조건과 where 조건 (0) | 2025.04.05 |
[SQL기초] Oracle/MySQL의 대표적인 용법 차이 (0) | 2025.03.22 |
[SQL기초] 형 변환 (0) | 2025.03.22 |
[SQL 기초] Self 조인 (0) | 2025.03.17 |