2010. 5. 11. 18:42

[Oracle] SYSDATE를 이용한 날짜 및 시간 조정

SQL> select sysdate, to_char(sysdate, 'HH:MI:SS')       
           from dual

SYSDATE  TO_CHAR(SYSDATE,
-------- ----------------
10/04/03 02:13:02

         select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') sysdate from dual
           from dual

SYSDAT            
-------------------
2010-12-13 19:28:54

SYSDATE는 시,분,초도 포함되어 있다. 그런데 그냥 출력하면 나오진 않는다.

이때 to_char을 써서 문자로 출력을 해야 한다. 주목해야 할 점은 문자를 날짜로 출력하고 있다는 것이다.

 

-- 오늘부터 100달 뒤의 날짜의 요일을 구하시요.

SQL> select to_char(add_months(sysdate,100),'day')
           from dual;

TO_CHAR(ADD_MONTHS(SYSDA
------------------------
금요일

 

-- 오늘부터 100달뒤 돌아오는 월요일의 날짜를 구하시요.

SQL> select next_day(add_months(sysdate,100),'월')
           from dual;

NEXT_DAY
--------
18/08/06



-- 기타 날짜 및 시간 조정

SELECT  TO_CHAR(SYSDATE - 0.1, 'HH:MI')  '1시간 12분 전', 
             TO_CHAR(SYSDATE + (30/60)/24, 'HH:MI')  '30분 후', 
             TO_CHAR(SYSDATE + 3/24, 'HH:MI')  '3시간 후', 
             TO_CHAR(SYSDATE + 3, 'MM/DD')  '3일 후'
    FROM DUAL;