dateadd, datediff DATABASE/MS SQL 2016. 1. 12. 16:47

dateadd

-- 월의 마지막 날
select dateadd(month,1,getdate())-day(getdate())
-- 월의 첫째날
select dateadd(day,-(day(getdate()-1)), getdate())
-- 월의 13개월전 첫째날
select dateadd(month,-12,getdate())-(day(getdate())-1)

-- 1일 더하기
select dateadd(day,1,getdate())
-- 1월 더하기
select dateadd(month,1,getdate())
-- 1년 더하기
select dateadd(year,1,getdate())



datediff

datediff( 시간단위구분자, 시작시간, 종료시간 )


 

getdate()+1 은 현재시간에서 1일을 더하는 함수이다.

현재 시간이 2012-12-20 11:50:11 이면, getdate()+1 은 2012-12-21 11:50:11 이 된다

 

 

각각 분단위, 초단위, 시간단위, 일단위, 월단위, 년단위로 구한다.

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 년 (730일)

 

출처: http://lefigaro.tistory.com/14