기술 블로그

where 조건문에 날짜를 활용하여 특정 시간대 범위 내에 있는 데이터들을 select 할 때 본문

데이터베이스/MsSql

where 조건문에 날짜를 활용하여 특정 시간대 범위 내에 있는 데이터들을 select 할 때

parkit 2021. 8. 25. 08:45
728x90
반응형

 

DECLARE @START_DATE  DATETIME ,@END_DATE  DATETIME

-- @START_DATE와 @END_DATE를 바꿔가면서 활용
SET @START_DATE = '20210804';
SET @START_DATE = CONVERT(DATETIME, CONVERT(VARCHAR(10), DATEPART ( YYYY , @START_DATE )) + '-' + CONVERT(VARCHAR(10), DATEPART( MM , @START_DATE ))  +'-' +  CONVERT(VARCHAR(10), DATEPART( DD , @START_DATE )));
SET @END_DATE = '20210804'; 
SET @END_DATE = CONVERT(DATETIME,CONVERT(VARCHAR(10), DATEPART ( YYYY , @END_DATE )) + '-' + CONVERT(VARCHAR(10), DATEPART( MM , @END_DATE ))  +'-' +  CONVERT(VARCHAR(10), DATEPART( DD , DATEADD(DAY, 1, @END_DATE))) + ' 00:00:00.000');
	
SELECT @START_DATE '@START_DATE 이상', @END_DATE '@END_DATE 미만';

 

위의 쿼리문을 실행하면,

 

2021-08-04 00:00:00.000와 2021-08-05 00:00:00.000가 출력된다.

 

특정 시간대 범위 내에 있는 데이터들을 추출할 때(select), 

 

where 조건문에 @START_DATE(이상)와 @END_DATE(미만)를 활용하자.

 

아래 쿼리문 참고

SELECT * FROM TABLE_NAME
WHERE CONVERT(DATETIME, @START_DATE) <= CONVERT(DATETIME, [DATE_COLUMN]) 
  AND CONVERT(DATETIME, [DATE_COLUMN]) < CONVERT(DATETIME, @END_DATE)
728x90
반응형