본문 바로가기

DB

ms sql 사이날짜 체크하는 쿼리


-- 샘플테이블및데이터생성

--  테이블생성시 확인하고자하는 날짜를 모두 넣어야된다

--  필자는 오늘을기준으로 730일 가량만 넣어 비교하였다

--  참고 : 데브피아 

--  http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=38&MAEULNo=16&no=71353&ref=71353


CREATE TABLE TBL_DATE      (

       WORK_DATE    VARCHAR(8)

)

GO

 

DECLARE @CNT INT

SET @CNT = 1

 

WHILE @CNT <= 730

BEGIN

       INSERT INTO TBL_DATE VALUES ( CONVERT(CHAR(8), DATEADD(DAY, @CNT , GETDATE() ) , 112 ) )

       SET @CNT = @CNT + 1

END

 

 

 

-- 기간변수설정및할당

DECLARE      @FIRST_SDAY VARCHAR(8)           --첫번째기간시작일

             ,@FIRST_EDAY VARCHAR(8)          --첫기간기간종료일

             ,@SECOND_SDAY VARCHAR(8)   --두번째기간시작일

             ,@SECOND_EDAY VARCHAR(8)   --두번째기간종료일

SET @FIRST_SDAY     = '20090801'

SET @FIRST_EDAY     = '20090807'

SET @SECOND_SDAY    = '20090601'

SET @SECOND_EDAY    = '20091201'

 

 

-- 두개의기간이중복되는지를체크

IF EXISTS (

       SELECT TOP 1 1 FROM TBL_DATE A

       INNER JOIN TBL_DATE B

       ON A.WORK_DATE = B.WORK_DATE

       WHERE A.WORK_DATE >= @FIRST_SDAY AND A.WORK_DATE <= @FIRST_EDAY

       AND B.WORK_DATE >= @SECOND_SDAY AND B.WORK_DATE <= @SECOND_EDAY

)

       SELECT '포함되는날이있음'

ELSE

       SELECT '포함되는날이없음'

      

 

'DB' 카테고리의 다른 글

MS-SQL 기초  (0) 2014.03.21
MS_SQL 인덱스...  (0) 2014.03.21
mySQL 외부접속방법  (0) 2012.04.25
많은 양의 DB 빠르게 올리기~~  (0) 2012.04.20
해당 테이블에서 사용되는 SP 목록 가져오기  (0) 2012.03.29