SQL에서 날짜 덧셈 및 뺄셈을 수행하는 방법 상세 설명

SQL은 데이터베이스 조작의 기본적인 스킬이며, 날짜 덧셈 및 뺄셈은 자주 필요한 작업 중 하나입니다. 이 기사에서는 SQL에서의 날짜 조작에 초점을 맞추어, 기본 구문부터 실용적인 응용 예까지 자세히 설명합니다. 이를 통해 업무에서 날짜 데이터를 보다 원활하게 처리할 수 있습니다.

목차

SQL에서의 날짜 덧셈 기본 구문

SQL에서는 날짜에 일수나 개월수를 더하기 위해 표준 함수나 구문을 사용합니다. 이를 통해 특정 날짜에 일정 기간을 추가할 수 있습니다.

DATEADD 함수의 기본 구문

SQL Server 등에서 자주 사용되는 DATEADD 함수를 사용하여, 날짜에 특정 기간을 추가하는 방법을 소개합니다.

-- DATEADD 함수의 기본 구문
DATEADD(단위, 숫자, 기준 날짜)

DATEADD 함수의 예

다음 예에서는 2024년 1월 1일에 10일을 더합니다.

SELECT DATEADD(DAY, 10, '2024-01-01') AS 덧셈 결과;

결과는 2024년 1월 11일이 됩니다.

INTERVAL을 사용한 날짜 덧셈

MySQL 등에서 사용되는 INTERVAL을 사용한 날짜 덧셈 방법을 소개합니다.

-- INTERVAL을 사용한 날짜 덧셈
SELECT '2024-01-01' + INTERVAL 10 DAY AS 덧셈 결과;

이 결과도 2024년 1월 11일이 됩니다.

이러한 기본 구문을 이해함으로써 날짜 조작이 간단해집니다. 다음으로 날짜 뺄셈에 대해 설명하겠습니다.

SQL에서의 날짜 뺄셈 기본 구문

SQL에서는 날짜에서 일수나 개월수를 빼는 것도 자주 필요합니다. 아래에 표준 함수나 구문을 사용한 날짜 뺄셈 방법을 소개합니다.

DATEADD 함수를 사용한 날짜 뺄셈

SQL Server 등에서는 DATEADD 함수를 사용하여 날짜에서 특정 기간을 뺄 수 있습니다. 뺄셈을 할 때는 음수를 지정합니다.

-- DATEADD 함수를 사용한 날짜 뺄셈
DATEADD(단위, 숫자, 기준 날짜)

DATEADD 함수의 예

다음 예에서는 2024년 1월 10일에서 10일을 뺍니다.

SELECT DATEADD(DAY, -10, '2024-01-10') AS 뺄셈 결과;

결과는 2023년 12월 31일이 됩니다.

INTERVAL을 사용한 날짜 뺄셈

MySQL 등에서는 INTERVAL을 사용하여 날짜에서 특정 기간을 뺄 수 있습니다.

-- INTERVAL을 사용한 날짜 뺄셈
SELECT '2024-01-10' - INTERVAL 10 DAY AS 뺄셈 결과;

이 결과도 2023년 12월 31일이 됩니다.

날짜 덧셈과 마찬가지로 뺄셈도 간단하게 할 수 있습니다. 다음으로 DATEADD 함수의 자세한 사용 방법에 대해 설명합니다.

DATEADD 함수의 사용 방법

DATEADD 함수는 SQL Server 등에서 날짜를 조작하는 데 매우 유용한 함수입니다. 특정 날짜에 대해 일수, 개월수, 연수 등을 덧셈 또는 뺄셈할 수 있습니다.

DATEADD 함수의 구문

DATEADD 함수의 기본적인 구문은 다음과 같습니다.

DATEADD(단위, 숫자, 기준 날짜)
  • 단위:덧셈 또는 뺄셈할 시간의 단위. 예로는 DAY, MONTH, YEAR 등이 있습니다.
  • 숫자:덧셈 또는 뺄셈할 양. 양수로 덧셈하고, 음수로 뺄셈합니다.
  • 기준 날짜:조작의 대상이 되는 날짜.

DATEADD 함수의 구체적인 예

일수 덧셈

다음 예에서는 2024년 1월 1일에 30일을 더합니다.

SELECT DATEADD(DAY, 30, '2024-01-01') AS 덧셈 결과;

결과는 2024년 1월 31일이 됩니다.

개월수 덧셈

다음 예에서는 2024년 1월 1일에 3개월을 더합니다.

SELECT DATEADD(MONTH, 3, '2024-01-01') AS 덧셈 결과;

결과는 2024년 4월 1일이 됩니다.

연수 덧셈

다음 예에서는 2024년 1월 1일에 5년을 더합니다.

SELECT DATEADD(YEAR, 5, '2024-01-01') AS 덧셈 결과;

결과는 2029년 1월 1일이 됩니다.

DATEADD 함수의 응용 예

전월 말일 구하기

다음 쿼리는 특정 날짜에서 전월의 말일을 구합니다.

SELECT DATEADD(MONTH, -1, DATEADD(DAY, -DAY('2024-02-15'), '2024-02-15')) AS 전월 말일;

이 결과는 2024년 1월 31일이 됩니다.

DATEADD 함수를 활용함으로써 복잡한 날짜 조작도 쉽게 실행할 수 있습니다. 다음으로 DATEDIFF 함수를 사용한 날짜 차이 계산에 대해 설명합니다.

DATEDIFF 함수로 날짜 차이 계산

DATEDIFF 함수는 SQL Server 등에서 두 날짜 사이의 차이를 계산하기 위해 사용됩니다. 일수, 개월수, 연수 등의 단위로 차이를 구할 수 있습니다.

DATEDIFF 함수의 구문

DATEDIFF 함수의 기본적인 구문은 다음과 같습니다.

DATEDIFF(단위, 시작 날짜, 종료 날짜)
  • 단위:차이를 구할 시간의 단위. 예로는 DAY, MONTH, YEAR 등이 있습니다.
  • 시작 날짜:계산의 기준이 되는 시작 날짜.
  • 종료 날짜:계산의 기준이 되는 종료 날짜.

DATEDIFF 함수의 구체적인 예

일수 차이를 계산

다음 예에서는 2024년 1월 1일부터 2024년 1월 31일까지의 일수 차이를 계산합니다.

SELECT DATEDIFF(DAY, '2024-01-01', '2024-01-31') AS 일수 차이;

결과는 30일이 됩니다.

개월수 차이를 계산

다음 예에서는 2024년 1월 1일부터 2024년 4월 1일까지의 개월수 차이를 계산합니다.

SELECT DATEDIFF(MONTH, '2024-01-01', '2024-04-01') AS 개월수 차이;

결과는 3개월이 됩니다.

연수 차이를 계산

다음 예에서는 2020년 1월 1일부터 2024년 1월 1일까지의 연수 차이를 계산합니다.

SELECT DATEDIFF(YEAR, '2020-01-01', '2024-01-01') AS 연수 차이;

결과는 4년이 됩니다.

DATEDIFF 함수의 응용 예

생일로부터 나이 계산

다음 쿼리는 특정 생일로부터 현재 나이를 계산합니다.

SELECT DATEDIFF(YEAR, '1990-05-15', GETDATE()) AS 나이;

GETDATE() 함수는 현재 날짜를 반환합니다. 이 예에서는 1990년 5월 15일 생일인 사람의 나이를 계산합니다.

DATEDIFF 함수를 사용함으로써 두 날짜 사이의 차이를 쉽게 계산할 수 있습니다. 다음으로 실용적인 날짜 조작 예제를 몇 가지 소개합니다.

실용적인 날짜 조작 예제

실제 업무에서는 날짜 조작이 다양한 시나리오에서 필요합니다. 아래에 몇 가지 실용적인 날짜 조작 예제를 소개합니다.

예제 1: 다음 달 첫날 구하기

특정 날짜에서 다음 달 첫날을 구하는 방법을 소개합니다.

SELECT DATEADD(MONTH, 1, DATEADD(DAY, 1 - DAY('2024-01-15'), '2024-01-15')) AS 다음 달 첫날;

이 결과는 2024년 2월 1일이 됩니다.

예제 2: 현재 날짜에서 1년 전 날짜 구하기

현재 날짜에서 1년 전 날짜를 계산하는 방법을 소개합니다.

SELECT DATEADD(YEAR, -1, GETDATE()) AS 1년 전 날짜;

GETDATE() 함수는 현재 날짜를 반환하며, 여기서 1년을 뺍니다.

예제 3: 특정 기간에 속하는 데이터 추출

특정 시작일과 종료일 사이에 속하는 데이터를 추출하는 방법을 소개합니다.

SELECT *
FROM 데이터 표
WHERE 날짜 열 BETWEEN '2024-01-01' AND '2024-12-31';

이 쿼리는 2024년 1월 1일부터 2024년 12월 31일까지의 날짜에 속하는 데이터를 추출합니다.

예제 4: 평균 처리 시간을 계산

여러 처리의 시작일과 종료일에서 평균 처리 시간을 계산하는 방법을 소개합니다.

SELECT AVG(DATEDIFF(DAY, 시작일, 종료일)) AS 평균 처리 시간
FROM 처리 기록 표;

이 쿼리는 시작일과 종료일의 일수 차이를 계산하고, 그 평균을 구합니다.

예제 5: 요일 구하기

특정 날짜의 요일을 구하는 방법을 소개합니다.

SELECT DATENAME(WEEKDAY, '2024-01-01') AS 요일;

이 결과는 2024년 1월 1일의 요일을 반환합니다 (예: Monday).

이러한 실용적인 예제를 통해 날짜 조작에 대한 이해를 깊게 하고, 실제 업무에 응용할 수 있는 스킬을 습득합시다. 다음으로 월말 날짜 계산 방법에 대해 설명합니다.

응용 예제: 월말 날짜 계산

업무에서는 월말 날짜를 계산해야 하는 상황이 자주 발생합니다. 여기에서는 SQL을 사용하여 월말 날짜를 구하는 방법을 소개합니다.

월말 날짜를 구하는 방법

월말 날짜를 구하기 위해서는 다음 달의 1일부터 1일을 빼는 방법이 일반적입니다.

SQL Server에서의 예

SQL Server에서는 DATEADD와 EOMONTH 함수를 사용하여 월말 날짜를 구합니다.

-- EOMONTH 함수를 사용한 월말 날짜 구하기
SELECT EOMONTH('2024-01-15') AS 월말 날짜;

결과는 2024년 1월 31일이 됩니다.

MySQL에서의 예

MySQL에서는 LAST_DAY 함수를 사용하여 월말 날짜를 구합니다.

-- LAST_DAY 함수를 사용한 월말 날짜 구하기
SELECT LAST_DAY('2024-01-15') AS 월말 날짜;

이 결과도 2024년 1월 31일이 됩니다.

월말 날짜의 다른 계산 방법

월말 날짜를 계산하는 다른 방법으로 DATEADD 함수와 DAY 함수를 조합하여 계산하는 방법이 있습니다.

SQL Server에서의 다른 계산 방법

다음 예에서는 다음 달의 1일부터 1일을 빼서 월말 날짜를 계산합니다.

-- DATEADD와 DAY 함수를 사용한 월말 날짜 계산
SELECT DATEADD(DAY, -DAY(DATEADD(MONTH, 1, '2024-01-15')), DATEADD(MONTH, 1, '2024-01-15')) AS 월말 날짜;

이 결과도 2024년 1월 31일이 됩니다.

월말 날짜의 응용 예

청구서 마감일 계산

청구서의 마감일을 월말로 설정하는 경우 다음과 같이 계산합니다.

-- 청구서의 마감일을 월말로 설정
SELECT LAST_DAY('2024-01-15') AS 마감일;

이를 통해 지정된 달의 날짜에서 그 달의 월말을 마감일로 가져올 수 있습니다.

이 방법들을 활용함으로써 업무에서 월말 날짜 계산이 용이해집니다. 다음으로 날짜 덧셈 및 뺄셈에 관한 연습 문제를 통해 이해를 깊게 해봅시다.

연습 문제

날짜 덧셈 및 뺄셈에 관한 연습 문제를 통해 이해를 깊게 해봅시다. 아래의 문제를 풀고, 실제로 SQL을 사용하여 답변을 확인해보세요.

문제 1: 날짜 덧셈

특정 날짜에 15일을 더하는 SQL 쿼리를 작성하세요.

-- 문제 1의 쿼리
SELECT DATEADD(DAY, 15, '2024-06-01') AS 덧셈 결과;

이 쿼리의 결과는 무엇입니까?

문제 2: 날짜 뺄셈

특정 날짜에서 30일을 빼는 SQL 쿼리를 작성하세요.

-- 문제 2의 쿼리
SELECT DATEADD(DAY, -30, '2024-06-01') AS 뺄셈 결과;

이 쿼리의 결과는 무엇입니까?

문제 3: 날짜 차이 계산

2024년 1월 1일부터 2024년 12월 31일까지의 일수 차이를 계산하는 SQL 쿼리를 작성하세요.

-- 문제 3의 쿼리
SELECT DATEDIFF(DAY, '2024-01-01', '2024-12-31') AS 일수 차이;

이 쿼리의 결과는 며칠이 됩니까?

문제 4: 다음 달 첫날 구하기

특정 날짜에서 다음 달의 첫날을 구하는 SQL 쿼리를 작성하세요.

-- 문제 4의 쿼리
SELECT DATEADD(MONTH, 1, DATEADD(DAY, 1 - DAY('2024-06-15'), '2024-06-15')) AS 다음 달 첫날;

이 쿼리의 결과는 며칠이 됩니까?

문제 5: 월말 날짜 구하기

2024년 7월 15일의 월말 날짜를 구하는 SQL 쿼리를 작성하세요.

-- 문제 5의 쿼리
SELECT LAST_DAY('2024-07-15') AS 월말 날짜;

이 쿼리의 결과는 며칠이 됩니까?

문제 6: 나이 계산

1990년 5월 15일 생일인 사람의 현재 나이를 계산하는 SQL 쿼리를 작성하세요.

-- 문제 6의 쿼리
SELECT DATEDIFF(YEAR, '1990-05-15', GETDATE()) AS 나이;

이 쿼리의 결과는 몇 살이 됩니까?

이 문제들을 풀면서 SQL에서의 날짜 조작에 대한 이해를 깊게 할 수 있을 것입니다. 다음으로 SQL에서 날짜 덧셈 및 뺄셈을 수행하는 방법의 포인트를 간결하게 정리합니다.

요약

SQL에서 날짜 덧셈 및 뺄셈을 수행하는 방법에 대해 다음과 같은 포인트를 숙지해 둡시다.

기본 구문의 이해

DATEADD 함수나 INTERVAL을 사용한 기본적인 덧셈 및 뺄셈 구문을 이해함으로써 날짜 조작이 용이해집니다.

DATEADD 함수의 활용

DATEADD 함수를 사용함으로써 특정 날짜에 대해 일수, 개월수, 연수를 유연하게 덧셈 및 뺄셈할 수 있습니다. 음수를 지정함으로써 뺄셈도 가능합니다.

DATEDIFF 함수로 날짜 차이 계산

DATEDIFF 함수를 사용함으로써 두 날짜 사이의 차이를 쉽게 계산할 수 있습니다. 나이 계산이나 처리 시간 계산 등 다양한 상황에서 유용합니다.

실용적인 응용

다음 달 첫날이나 월말 날짜 구하기, 특정 기간의 데이터 추출 등 실용적인 날짜 조작 예제를 숙지해 두면 업무에서의 응용이 원활해집니다.

연습 문제를 통한 실습

연습 문제를 풀어보면서 실제로 SQL을 사용하여 날짜 조작을 시도해 보고, 이해를 깊게 할 수 있습니다.

이러한 지식과 스킬을 활용하여 데이터베이스 조작의 효율을 높여봅시다. SQL에서 날짜 조작에 숙달함으로써 데이터 관리 및 분석의 폭이 넓어집니다.

목차