본문 바로가기
Skills/MsSQL

[MSSQL] MSSQL에서 날짜 계산의 마스터가 되는 방법

by Hoseok 2023. 11. 30.
728x90
반응형

 

오늘 날짜 가져오기

현재 날짜와 시간: SELECT GETDATE();

 

어제, 내일 날짜 계산하기

어제: SELECT CONVERT(CHAR(8), DATEADD(dd, -1, GETDATE()), 112);

내일: SELECT CONVERT(CHAR(8), DATEADD(dd, +1, GETDATE()), 112);

 

특정 기간 후의 날짜 계산하기

3개월 후: SELECT CONVERT(CHAR(8), DATEADD(mm, +3, GETDATE()), 112);

1년 후: SELECT CONVERT(CHAR(8), DATEADD(yy, +1, GETDATE()), 112);

 

이번 달, 다음 달의 시작과 끝 날짜 구하기 

이번 달 첫 날: SELECT CONVERT(CHAR(8), DATEADD(dd, 0, GETDATE() - DAY(GETDATE() - 1)), 112);

이번 달 마지막 날: SELECT CONVERT(CHAR(8), DATEADD(mm, +1, GETDATE() - DAY(GETDATE())), 112);

다음 달 첫 날: SELECT CONVERT(CHAR(8), DATEADD(MM, +1, GETDATE() - DAY(GETDATE() - 1)), 112);

다음 달 마지막 날: SELECT CONVERT(CHAR(8), DATEADD(MM, +2, GETDATE() - DAY(GETDATE())), 112);

지난 달 첫 날: SELECT CONVERT(CHAR(8), DATEADD(mm, -1, GETDATE()-DAY(GETDATE()-1)),112);

지난 달 말 일: SELECT CONVERT(CHAR(8), DATEADD(mm, 0, GETDATE()-DAY(GETDATE())),112);

 

특정 년의 시작과 끝 날짜 구하기

올해 첫 날: SELECT CONVERT(CHAR(8), DATEADD(YY, 0, GETDATE() - DATEPART(DAYOFYEAR, GETDATE() - 1)), 112);

올해 마지막 날: SELECT CONVERT(CHAR(8), DATEADD(YY, +1, GETDATE() - DATEPART(DAYOFYEAR, GETDATE())), 112);

내년 첫 날: SELECT CONVERT(CHAR(8), DATEADD(YY, +1, GETDATE() - DATEPART(DAYOFYEAR, GETDATE() - 1)), 112);

내년 마지막 날: SELECT CONVERT(CHAR(8), DATEADD(YY, +2, GETDATE() - DATEPART(DAYOFYEAR, GETDATE())),112);

작년 첫 날: SELECT CONVERT(CHAR(8), DATEADD(YY, -1, GETDATE() - DATEPART(DAYOFYEAR, GETDATE() - 1)), 112);

작년 마지막 날: SELECT CONVERT(CHAR(8), DATEADD(YY, 0, GETDATE() - DATEPART(DAYOFYEAR, GETDATE())), 112);

 

참고할 글

2023.11.13 - [Skills/MsSQL] - [MSSQL] SQL-Server 데이터 타입 총정리

2023.09.05 - [Skills/MsSQL] - MSSQL SQL Server 공식문서

728x90
반응형