[MSSQL] MSSQL에서 날짜 계산의 마스터가 되는 방법
오늘 날짜 가져오기
현재 날짜와 시간: 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);