Database/MSSQL

MSSQL 날짜 계산 DATEADD (날짜형식이 문자열일때 포함)

FreeBear 2018. 7. 4. 11:07
반응형

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))



결과


반응형