C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[10433] Re:[질문] Date 비교 검색...문제 하고, SQL 에서 Like 쓰는법!!!
최보현.U&I [uriduri] 2814 읽음    2001-08-29 21:28
유엔아이 현입니다.

다음두번 한게시물에 한 질문만 해주시면 감솨 ~~^^;;

처음 문제인
날짜형 검색은 DBMS 마다 많은 차이를 보입니다.
님이 텍스트 형태로 필드를 잡았다고 할지라도 날짜로 인식 해주는 고마운 DBMS 가 있는가하면
오로지 텍스트로만 보는 무식한 DBMS 도 있지요~
또 검색 하는 방법론도 DBMS 마다 약간씩 되는 문장이 있고 않되는 문장들이 있답니다.

만약 텍스트 문자열을 가지고 날짜 검색을 해야 한다면 다음과같이 해보십시요

Where
     VAL(LEFT(날짜,4)) * 10000 + VAL(SUBSTRING(날짜,6,2)) * 100 + VAL(RIGHT(날짜,2)) >= 20010101
     AND
     VAL(LEFT(날짜,4)) * 10000 + VAL(SUBSTRING(날짜,6,2)) * 100 + VAL(RIGHT(날짜,2)) <= 20010201

날짜형으로도 인식을 해준다면

Where
     Year(날짜) * 10000 + Month(날짜) * 100 + Day(날짜) >= 20010101
     AND
     Year(날짜) * 10000 + Month(날짜) * 100 + Day(날짜) <= 20010201

이런식으로 해주면 어떤 DBMS 고 거의다 동작을 합니다.
단 단점은 약간 느리다는점이구요~

어떤 디비는 이런것도 먹는 답니다.
Format(날짜,'yyyymmdd')
이렇게도 ㅋㅋㅋㅋ

SQL 정석으로 기간 검색을 하실때에는 다음과 같이 하십시요~
(그러나 않되는 DBMS도 많다는 걸 염두 )

Where
    날짜 BETWEEN '2001-01-01' AND '2001-02-01'

단 윈도우 시스템의 구가별 설정의 날짜약식을 yyyy-mm-dd 로 설정 하셔야 할겁니다.

다음으로  Like 문장에 대해서

% / * / _ 로 임의의 문장을 대치 할수 있는데 ...
사용법은 다음과 같이

Like '가%'      : 가로시작하는 모든열
Like '%가%'     : 가자가 들어있는 모든열
Like '%가'      : 가로 끝나는 모든열

양식 검색을 할때는

Like '___A'  : 앞에 3 Byte 가 무슨 문자이던간에 총 4 자이면서 A 로 끝나는 모든열 ...

그럼 나머지 이해하시겠저~~

##ㅏ##ㅏ

+ -

관련 글 리스트
10429 [질문] Date 비교 검색...문제 하고, SQL 에서 Like 쓰는법!!! 령아~!♡ 1338 2001/08/29
10433     Re:[질문] Date 비교 검색...문제 하고, SQL 에서 Like 쓰는법!!! 최보현.U&I 2814 2001/08/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.