인공지능 강아지 심리 테스트(무료)
오늘로또 당첨분석 및 행운번호 받기(무료)

티스토리 뷰

반응형

[MSSQL]  년도 상관없이 월일로 날짜 검색 (LIKE)

MSSQL에서 LIKE 검색할는 패턴확인해야합니다.

패턴확인 ==> convert(varchar,REGDATE)

 

1. 년도와 상관없이 12월 31일 조회 시 아래처럼 사용하면 필터링 안돼요.

SELECT *
FROM TABLE
WHERE REGDATE LIKE '%12-31%'

2. 년도와 상관없이 12월 30일 조회 시 아래처럼 사용하여야 합니다.

SELECT *
FROM TABLE
WHERE REGDATE LIKE '12 30%'

년도와 상관없이 오늘 날짜를 가지고온다고하면 아래 쿼리 사용하시면돼요.

SELECT CONVERT(NCHAR(2), DATEPART(MONTH,GETDATE())) + ' '+ CONVERT(NCHAR(2), REPLACE(LEFT(DATEPART(DAY,GETDATE()), 1), 0, ' ') + RIGHT(DATEPART(DAY,GETDATE()), 1)) + '%'

 

(SOLVED)

SELECT *
FROM TABLE
WHERE REGDATE LIKE CONVERT(NCHAR(2), DATEPART(MONTH,GETDATE())) + ' '+ CONVERT(NCHAR(2), REPLACE(LEFT(DATEPART(DAY,GETDATE()), 1), 0, ' ') + RIGHT(DATEPART(DAY,GETDATE()), 1)) + '%'

 

아래처럼해도 검색은되나 조건절에서 왼쪽 변 가공 시 속도가 느려짐.

SELECT *
FROM PICA_USER WITH(NOLOCK)where convert(char(8),join_date, 101) like '%12/31%'

 

정규식을 사용하여 응용 가능

1. '_1%' =>두 번째 문자가 '1'인 모든 문자열

2. '[123]%' =>첫 번째 문자가 '1' 또는 '2' 또는 '3'인 모든 문자열

3. '[0-9]%' =>첫 번째문자가0부터 9까지에 속하는 모든 문자열

4. '[^1]%' ==> 첫 번째 문자가 '1'이 아닌 모든 문자열

 

 

반응형
댓글

쿠팡 파트너스 활동을 통해, 일정액의 수수료를 제공받습니다.
반응형