DATEADD는 시간을 더해주는 함수이고 DATEDIFF는 두 시간의 차이를 리턴해주는 함수이다.
먼저 날짜를 더하는 시간이다.
흔히 최근 6개월치만 조회하려고 할 떄 기준일자 >= DATEADD(DD,-6,GETDATE()) 이런식으로 짠다.
해당 함수를 활용하여 월의 첫째 날, 월의 마지막 날 등을 구해보도록 하자.
DATEADD 함수 - DATEADD(시간 단위, 더 할 수치, 기준 시간)
- 첫번째 파라메터에는 DAY 대신에 DD, MONTH 대신에 MM, YEAR 대신에 YY를 쓸 수 있다.
-- 1일 더하기
SELECT DATEADD(DAY,1,GETDATE())
-- 1월 더하기
SELECT DATEADD(MONTH,1,GETDATE())
-- 1년 더하기
SELECT DATEADD(YEAR,1,GETDATE())
-- 월의 첫째날
SELECT DATEADD(DAY,-(DAY(GETDATE()-1)), GETDATE())
-- 월의 마지막 날
SELECT DATEADD(MONTH,1,GETDATE())-DAY(GETDATE())
-- 작년 이번달 첫째 날
SELECT DATEADD(MONTH,-12,GETDATE())-(DAY(GETDATE())-1)
다음으로 DATEDIFF 함수를 보자
DATEDIFF 함수 - DATEDIFF(시간 단위, 시작 시간, 종료 시간)
GETDATE()+1 은 현재 시간에서 1일을 더해준다.
SELECT GETDATE() 'GETDATE() 시간', GETDATE()+1 AS 'GETDATE() +1 시간' 을 날려보면
다음과 같은 결과가 나온다.
GETDATE() 시간 GETDATE() +1 시간
2018-04-21 10:30:27.550 2018-04-22 10:30:27.550
DATEDIFF를 활용하여 두 시각 간의 차이를 시간 단위를 분, 초, 시, 일, 월, 년으로 구해보자.
SELECT DATEDIFF ( MI , GETDATE() , GETDATE()+1 )
-- 1440 분 (1일)
SELECT DATEDIFF ( S , GETDATE() , GETDATE()+1 )
-- 86400 초 (1일)
SELECT DATEDIFF ( HOUR , GETDATE() , GETDATE()+1 )
-- 24 시간 (1일)
SELECT DATEDIFF ( DAY , GETDATE() , GETDATE()+1 )
-- 1 일 (1일)
SELECT DATEDIFF ( MONTH , GETDATE() , GETDATE()+31 )
-- 1 개월 (31일)
SELECT DATEDIFF ( YEAR , GETDATE() , GETDATE()+730 )
-- 2 년 (365*2=730일)
'Programming > MSSQL' 카테고리의 다른 글
MSSQL 자리수 만큼 앞에 0 붙이기 (함수로 구현) (0) | 2018.04.21 |
---|---|
MSSQL 날짜 포맷 변환 CONVERT (0) | 2018.04.21 |
MSSQL tempDB 옮기기 (0) | 2018.04.18 |
MSSQL 숫자만 뽑아내기 (1) | 2018.04.17 |
MSSQL 인코딩 확인 및 변경 (0) | 2018.04.17 |