728x90
SQL Server에서는 날짜, 시간을 더하거나 빼기 위해서는 DATEADD 함수를 사용한다. 현재 날짜에서 하루를 빼서 전일 데이터를 조회할 수 있으며, 일자외에도 년 월 시간 등 기준일자에 원하는 기간 만큰 쉽게 더하거나 뺄수 있다.
날짜 빼기, 더하기 (년, 월, 일)
■ 일 계산 (DAY)
SELECT DATEADD(DAY, -10, '2021-07-12') AS [10일전]
, DATEADD(DAY, 10, '2021-07-12') AS [10일후]
■ 월 계산 (MONTH)
SELECT DATEADD(MONTH, -1, '2021-07-12') AS [1개월전]
, DATEADD(MONTH, 1, '2021-07-12') AS [1개월후]
■년 계산 (YEAR)
SELECT DATEADD(HOUR, -1, '2021-07-12 22:30:00') AS [1시간전]
, DATEADD(HOUR, 1, '2021-07-12 22:30:00') AS [1시간후]
(활용 예시) 최근 30일 이내 직군별 입사 건수
SELECT job
, COUNT(*) AS cnt
FROM emp
WHERE hiredate BETWEEN DATEADD(DAY, -30, GETDATE())
AND GETDATE()
GROUP BY job
시간 빼기, 더하기 (시, 분, 초)
■ 시간 계산 (HOUR)
SELECT DATEADD(HOUR, -1, '2021-07-12 22:30:00') AS [1시간전]
, DATEADD(HOUR, 1, '2021-07-12 22:30:00') AS [1시간후]
■ 분 계산 (MINUTE)
SELECT DATEADD(MINUTE, -10, '2021-07-12 22:30:00') AS [10분전]
, DATEADD(MINUTE, 10, '2021-07-12 22:30:00') AS [10분후]
■ 초 계산 (SECOND)
SELECT DATEADD(SECOND, -30, '2021-07-12 22:30:00') AS [30초전]
, DATEADD(SECOND, 30, '2021-07-12 22:30:00') AS [30초후]
DATEPART 코드표
명칭 | DATEPART | DATEPART(약어) |
년 | YEAR | YY, YYYY |
월 | MONTH | MM, M |
일 | DAY | DD, D |
시 | HOUR | HH |
분 | MINUTE | MI, N |
초 | SECOND | SS, S |
밀리초 | MILLISECOND | MS |
주 | WEEK | WK, WW |
분기 | QUARTER | QQ, Q |
DATEPART 약어를 사용해도 동일한 결과가 계산된다.
SELECT DATEADD(DD, -1, '2021-07-12 22:30:00') AS [1일빼기]
, DATEADD(MM, -1, '2021-07-12 22:30:00') AS [1개월빼기]
, DATEADD(HH, -1, '2021-07-12 22:30:00') AS [1시간빼기]
'DataBase > MSSQL' 카테고리의 다른 글
[MSSQL] 이전 행, 다음 행 값 가져오기 (LAG, LEAD) (0) | 2022.07.19 |
---|---|
[MSSQL] 날짜, 시간 차이 일수 계산 (DATEDIFF) (0) | 2022.07.14 |
[MSSQL] DATENAME 함수 사용법 (요일, 분기, 날짜분리) (0) | 2022.04.19 |
[MSSQL] FORMAT 함수 사용법 (TO_CHAR, 날짜, 소수점) (0) | 2022.04.19 |
[MSSQL] ROLLUP 사용법 (소계, 합계) (0) | 2022.04.19 |
댓글