728x90
반응형

오라클을 사용하다 보면 거의 모든 테이블에는 날짜 컬럼이 들어가 있다.

자주 사용되는 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

- 정의된 날자에서 기준값 (년, 달..)을 기준으로 반내림


728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,