MSSQL 날짜 계산 DATEADD (날짜형식이 문자열일때 포함)
DECLARE @DDate datetime
DECLARE @VDate varchar(10)
SET @DDate=getdate()
SET @VDate ='2018-07-04'
* 값이 문자열이면 date 또는 datetime으로 형변환한다.
1. 날짜 더하기
- 1일
SELECT DATEADD(day, 1, @DDate)
SELECT DATEADD(day, 1,Convert(date,@VDate))
- 1달
SELECT DATEADD(month, 1, @DDate)
SELECT DATEADD(month, 1,Convert(date,@VDate))
- 1년
SELECT DATEADD(year, 1, @DDate)
SELECT DATEADD(year, 1,Convert(date,@VDate))
2. 날짜 빼기
- 1일
SELECT DATEADD(day, -1, @DDate)
SELECT DATEADD(day, -1,Convert(date,@VDate))
- 1달
SELECT DATEADD(month, -1, @DDate)
SELECT DATEADD(month, -1,Convert(date,@VDate))
- 1년
SELECT DATEADD(year, -1, @DDate)
SELECT DATEADD(year, -1,Convert(date,@VDate))
3. day함수를 이용해 월의 첫째날과 마지막날 구하기
* day 함수는 값형식이 datetime이어야 한다.
- 월의 첫째날
SELECT DATEADD(day,-(day(@DDate-1)), @DDate)
SELECT DATEADD(day,-(day(Convert(datetime,@VDate)-1)), Convert(datetime,@VDate))
- 월의 마지막날
SELECT DATEADD(month,1,@DDate)-day(@DDate)
SELECT DATEADD(month,1,Convert(datetime,@VDate))-day(Convert(datetime,@VDate))
결과