데이터베이스/MsSql
해당 연도의 일 수와 like 사용에 좋은 'yyyyMM%' 문자열 얻기
parkit
2021. 10. 1. 07:57
728x90
반응형
해당 연도의 일 수와 like 사용에 좋은 'yyyyMM%' 문자열 얻기
@START_DATE
2021-01-01 00:00:00.000
@END_DATE
2021-12-31 00:00:00.000
@DAY_DIFF
365
@MONTH_AGO_YYYYMM_LIKE
202101%
DECLARE @MONTH_DAY_COUNT INT, @MONTH_AGO DATETIME, @MONTH_AGO_YYYYMM_LIKE VARCHAR(100)
DECLARE @START_DATE DATETIME, @END_DATE DATETIME, @DAY_DIFF INT
DECLARE @PIVOT_DATE DATETIME
-- yyyy-MM-01 형식으로 입력하여, 해당 연도의 일 수와
-- like에 사용하기에 좋은 yyyyMM% 문자열을 얻을 수 있다.
SET @PIVOT_DATE = '2021-01-01'
SET @START_DATE = DATEADD(YEAR, DATEDIFF(YEAR, 0, @PIVOT_DATE), 0);
SET @END_DATE = DATEADD(YEAR, DATEDIFF(YEAR, -1, @PIVOT_DATE), -1);
SET @DAY_DIFF = DATEDIFF(DD, @START_DATE, @END_DATE) + 1;
SET @MONTH_AGO = CONVERT(VARCHAR(10),@PIVOT_DATE,23);
SET @MONTH_DAY_COUNT = DAY(@MONTH_AGO);
SET @MONTH_AGO_YYYYMM_LIKE = CONVERT(NVARCHAR(6), @MONTH_AGO, 112) + '%'
select @START_DATE '@START_DATE', @END_DATE '@END_DATE', @DAY_DIFF '@DAY_DIFF', @MONTH_AGO_YYYYMM_LIKE '@MONTH_AGO_YYYYMM_LIKE';
728x90
반응형