날짜 다루기

1) 현재의 날짜와 시간

SYSDATE을 사용합니다. 요번에 마친 프로젝트가 있는데, 파워빌더로 ORACLE DB연결해서 사용했거든요. 현재 날짜를 얻기 위해 다음과 같이 사용했어요.

SELECT SYSDATE
INTO :lsToday
FROM
DUAL ;

그리고 날짜의 포맷은 파워빌더에서 지원해주는 것으로 사용했죠.

2) 날짜 포맷 요소

포 맷

설 명

범 위

포 맷

설 명

범 위

SS

0 ~ 59

MON

월 (약자)

JAN ~ DEC

SSSSS

자정 이후의 초

0 ~ 86399

MONTH

월 (영문)

JANUARY ~
DECEMBER

MI

0 ~ 59

YY

연도 끝 자리
두자

예) 98

HH

0 ~ 12

YYYY

연도 (네자리)

예) 1998

HH24

0 ~ 24

YEAR

철자화된 연도

DD

월간 일자

1 ~ 31
(28 , 30)

CC

세기

예) 19

DAY

요일

SUNDAY ~
SATURDAY

Q

분기

1 ~ 4

D

요일

1 ~ 7

J

율리우스력 일자

예) 2448000

DDD

년간 일자

1 ~ 366
(365)

W

월간 주

1 ~ 5

MM

1 ~ 12

WW

연간 주

1 ~ 52

3) 날짜를 문자열로 변환하기

  • 형식 : TO_CHAR( date_column_name, format )
  • FORMAT은 단일 인용부호로 둘러쌓여야 합니다.
  • 예) SELECT ename, TO_CHAR( birthday, 'YYYY/MM/DD' )
    FROM std_db
    ORDER BY birthday ;
    --> 생년월일 순으로 Sort되며 "1971/12/01"과 같은 Format으로 Display됩니다.
  • TO_CHAR 함수를 이용하여 문자열로 변환되면, SUBSTR과 같은 다른 문자열 함수내에서 인수로 사용할 수 있습니다.
  • 예) SELECT ename, SUBSTR( TO_CHAR( birthday, 'YYYY/MM/DD' ), 1, 4 )
    FROM std_db
    ORDER BY birthday ;
    --> 생년월일에서 연도만 Return합니다.
  • 년월일을 한글로 나타나게 하려면 다음과 같이 표현하면 됩니다.
  • 예) SELECT ename, TO_CHAR( birthday, 'YYYY"년"MM"월"DD"일"' )
    FROM std_db
    ORDER BY birthday ;

4) 문자열을 날짜로 변환하기

  • 형식 : TO_DATE( string_column_name, format )
  • 사용법은 TO_CHAR와 비슷합니다.

5) 시분초의 표현

  • 예) SELECT TO_CHAR( birthday, 'HH:MI:SS' )
    FROM std_db ;
    --> 태어난 시간을 "09:33:21"과 같은 형태로 Display합니다.
    SELECT TO_CHAR( birthday,
    'HH24:MI' )
    FROM std_db ;
    --> 태어난 시간을 "23:21"과 같은 형태로 시와 분을 Display합니다.
  • 시간을 24시간 형태로 표현하지 않고 AM, PM형태로 표현하려면
    예) SELECT TO_CHAR( birthday, 'HH:MI:SS
    PM' )
    FROM std_db ;
    --> 현재 시간이 오전인지 오후인지에 상관없이 PM을 Format에 추가하면 됩니다.

6) 날짜의 더하기와 빼기

ORACLE에서는 기존의 한 날짜로부터 다른 날짜를 계산하기 위해 더하기나 빼기를 할 수 있어요~! 오늘 딸기아빠가 된 우성이가 딸기의 백일을 알고 싶으면 다음과 같이 조회하면 되죠~!

SELECT SYSDATE + 100 FROM DUAL ;

물론 두 날짜 사이의 더하기와 빼기도 가능하지요~!

'먹고살기 > Oracle' 카테고리의 다른 글

REDO LOG FILE에 대해서  (0) 2011.04.05
오라클 강좌  (0) 2011.04.05
Database Link사용법  (0) 2011.04.05
사용자 세션의 강제 종료  (0) 2011.04.05
oracle JOIN  (0) 2011.04.05