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