티스토리 뷰
[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'이 아닌 모든 문자열
'Programming > MSSQL' 카테고리의 다른 글
[MSSQL] [테이블을 다시 만들어야 하는 변경 내용 저장 사용 안함] 옵션을 설정했습니다- 간단 해결 (0) | 2020.02.04 |
---|---|
[MSSQL] 이 백엔드 버전은 데이터베이스 다이어그램 또는 테이블 디자인을 지원하지 않습니다. (MS Visual Database Tools) (간단 해결) (1) | 2020.02.04 |
[MSSQL] 숫자 천단위 표시 (0) | 2019.12.19 |
[MSSQL] 테이블, 컬럼, 프로시저 조회 (0) | 2019.12.10 |
[MSSQL] 월의 시작일, 월의 마지막 일자 구하기 (2) | 2019.11.27 |