기술 블로그

해당 연도의 일 수와 like 사용에 좋은 'yyyyMM%' 문자열 얻기 본문

데이터베이스/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
반응형