오라클을 사용하다 보면 거의 모든 테이블에는 날짜 컬럼이 들어가 있다.
자주 사용되는 Date 함수들을 정리해 보자꾸나
1. 처음 헷갈렸던 TO_DATE, TO_CHAR
To_DATE : 문자열 상수를 받아서 이를 날짜 값으로 변환해준다.
To_CHAR : 이건뭐 날짜타입이나 뭐 그런애들을 CHAR 타입으로 변환해주는거지
자 TO_DATE 예를 한번볼까.
예를들어 date 컬럼이 DATE 타입이라면?
insert into ejang_events (event_name, date)
values ('market open', TO_DATE('2-DEC-2001', 'DD-MON-RR)) ;
이렇게 해주면 2001년 12월 2일 이라는 캐릭터 타입을 날짜타입으로 쇼쇽 바꿔서 date에 넣어주렴
이거죠
캐릭터 타입이니까 '2-DEC-2001' 요렇게 작은 땀표 붙여서 써줬죠 , 'DD-MON-YY' 이런 형태라는걸 알려주고,
그렇군 그럼 다른식으로 적을땐?
values ('market open', TO_DATE('21/09/09', 'DD-MM-RR')) ;
to_char는 뭐..데이터 타입을 캐릭터 타입으로 바꾸겠다는 거니까
select TO_CHAR(sysdate, 'YYYY-MM-DD') from dual;
이런식으로 날짜타입을 'YYYY-MM-DD' 요렇게 해서 주렴! 이거지
여기서 sysdate라는건 지금 날짜를 말하는 데이터타입이야. ㅎ 기본이라구
참고 - TO_DATE 함수의 포맷팅 매스크는 선택적이야, 함수의 유일한 요구사항은 상수 날짜 값이 데이터베이스의
올바른 포맷이어야 한데.
show parameters nls_date_format 을 입력하면, 데이터베이스의 디폴트 날짜 포맷을 알 수 있어!
2. SYSDATE
- 현재 시스템의 날짜야
select SYSDATE from DUAL;
3. ADD_MONTHS
- 해당 날짜에 지정한 달 수 만큼 더하기
select DATE, ADD_MONTHS(DATE, 1)
from TEST;
이렇게 하면 날짜와 그 날짜에 한달을 더한 날짜가 나오겠지
4. LAST_DAY
- 정의된 날짜의 달에서 마지막 날을 알수 있어
select DATE, LAST_DAY(DATE,)
from TEST;
5. MONTH_BETWEEN
- 정의된 두 날짜 사이의 값을 알수있지
select MONTH_BETWEEN(SYSDATE, DATE)
from TEST;
결과는 뭐 252.9323094 이렇게 나오면 252 개월 하고 나머지값이 나오는 거지.
6. NEXT_DAY
- 정의된 날짜에서 명시된 요일의 다음 날짜를 반환해주는 함수
select SYSDATE, NEXT_DAY(SYSDATE, 'SUNDAY')
from TEST;
이렇게 되면 현재 날짜에서 그 다음 일요일에 해당하는 날짜를 출력해주지.
7. ROUND
- 정의된 날자를 년도 값을 기준으로 반올림 해준다.
select ROUND(TO_DATE('27-OCT-98', 'DD-MON-RR'), 'YEAR')
from DUAL;
결과값은 01-JAN-99 이렇게 나오겠지요.
그럼 'YEAR' 가 아니라 'MONTH' 기준으로 반올림을 하게되면
select ROUND(TO_DATE('27-OCT-98', 'DD-MON-RR'), 'MONTH')
from DUAL;
결과값은 01-NOV-98
8. TRUNC
- 정의된 날자에서 기준값 (년, 달..)을 기준으로 반내림
[출처] 이장's 오라클 - Date함수 |작성자 이장
'SQL > ORACLE함수' 카테고리의 다른 글
[오라클 11g] 시퀀스 (SEQUENCE, 자동생성, CURRVAL, NEXTVAL) (0) | 2016.04.21 |
---|---|
MAX() OVER (PARTITION BY ..) (0) | 2016.01.28 |
오라클(Oracle) SUBSTR 함수로 문자열을 다양하게 자르는 방법 (0) | 2016.01.04 |
[오라클] MOD, TRUNC, EXTRACT (0) | 2015.11.20 |
날짜함수 (0) | 2015.11.20 |
오라클 요일함수-주간 요일 찾기 (0) | 2015.11.20 |
Oracle 오라클 trunc() 함수로 날짜 자르는법 방법 (0) | 2015.11.20 |
Oracle 오라클 SYSDATE(시스템시간=현재시간)을 년도만 보여주기 (0) | 2015.11.20 |