-
MSSQL 날짜 계산 DATEADD (날짜형식이 문자열일때 포함)Database/MSSQL 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))
결과
반응형'Database > MSSQL' 카테고리의 다른 글
MSSQL UPDATE with row_number() (0) 2018.09.04 MSSQL 오류 해결 트랜잭션 로그가 꽉 찼습니다. (0) 2018.08.17 MSSQL Service Broker 활성화하는 방법 (사용중인 DB 포함) (0) 2018.06.15 MSSQL Database, Table, Column 존재 여부 확인 (0) 2018.06.05 MSSQL 중복제외 SELECT, 중복삭제 DELETE (2) 2018.05.01