나라마다 날짜 형식이 다르기 때문에 날짜를 검색하기전 현제 접속한 세션의 날짜 형식을 확인해주어야 합니다.
현재 세션의 날짜 형식 확인하기
select *
from nls_session_parameters
where parameter='NLS_DATE_FORMAT';
날짜 형식 정의
형식 | 정의 | 형식 | 정의 |
YYYY | 연도 4자리 | HH24 | 시간 (0~24) |
YY 또는 RR | 연도 2자리 | MI | 분 (0~59) |
MM | 달의 2자리 값 | SS | 초 (0~59) |
MON | 달의 영문 약어 | WW | 연의 주 |
DD | 숫자 형식의 일 | IW | ISO 표준에 따는 년의 주 |
DAY | 요일 | W | 월의 주 |
DY | 요일 약어 | YEAR | 영어 철자로 표기된 년도 |
D | 요일의 숫자 | MONTH | 양어 철자로 표기된 달 |
YY와 RR의 차이?
이 둘은 서로 다르다.
예를들어 YY로 81년을 검색하면 2081년으로 인식하고 검색한다. RR로 검색할 시 1981년도로 검색합니다.
즉, RR은 이전 세기, YY는 현재 세기를 기준으로 인식합니다.
세션의 date format를 YY로 변경하는 방법
alter session set nls_date_format='YY/MM/DD';
비교 연산자 LIKE
와일드카드: 이 자리에 어떤한 철자가 와도 상관이 없고 철자의 개수가 몇개가 되든 관계없다 라는 뜻.
% : 어떠한 철자가 와도 관계 없고 그 철자의 개수가 몇개든지도 관계없다는 뜻
_ (언더바): 어떠한 철자가 와도 관계없지만 그 철자의 개수는 1개여야만 한다는 뜻
비교 연산자 IS NULL
select ename, comm
from emp
where comm is null;
COMM != NULL과 같은 방식은 사용 불가능하다. NULL은 데이터가 없는, 알 수도없는 값
논리 연산자 진리표
NULL은 TRUE인지 FALSE인지 알 수 없다.
AND 연산자 진리 연산표
AND | TRUE | FALSE | NULL |
TRUE | TRUE | FALSE | NULL |
FALSE | FALSE | FALSE | FALSE |
NULL | NULL | FALSE | NULL |
OR 연산자 진리 연산표
OR | TRUE | FALSE | NULL |
TRUE | TRUE | TRUE | TRUE |
FALSE | TRUE | FALSE | NULL |
NULL | TRUE | NULL | NULL |
NOT 연산자 진리 연산표
NOT | TRUE | FALSE | NULL |
FALSE | TRUE | NULL |
'공부 > 오라클 (Oracle) DB' 카테고리의 다른 글
SQL옵티마이저 힌트, 조인방식(NL JOIN, SORT MERGE JOIN, HASH JOIN) (0) | 2023.07.31 |
---|---|
[Oracle] order by와 rownum (feat. 프로그래머스 SQL) (0) | 2022.02.03 |
댓글