본문 바로가기

Database&WAS/Oracle

날짜 관련 쿼리

ex) 종료일 오전 9시 기준으로 종료여부 및 종료일 표시

SELECT TO_CHAR (STOPDATE, 'YYYY.MM.DD (DY)'), -- 종료일

       SIGN (STOPDATE - TO_DATE (TO_CHAR (SYSDATE, 'YYYYMMDD') || '090000',

                     'YYYYMMDDHH24MISS')) AS STOPYN

  FROM CUST;


SELECT

TO_TIMESTAMP(TO_CHAR(STOPDATE,'YYYYMMDDHH24MISS')) - TO_TIMESTAMP(TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')),

TO_CHAR(TO_TIMESTAMP(TO_CHAR(STOPDATE,'YYYYMMDDHH24MISS')) -  TO_TIMESTAMP(TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'))),

SUBSTR(TO_TIMESTAMP(TO_CHAR(STOPDATE,'YYYYMMDDHH24MISS')) -  TO_TIMESTAMP(TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')),12,8)

FROM CUST;


두시간차의 시분초만 구할려면 12,8 로 자르면 된다. 

-> 결과 예)

+00 23:32:51.000000

+000000000 23:32:51.000000000

23:32:51

------------------------------------------------------------------------------


요일표시 - 파라미터를 통해 표시언어를 지정해 줌(NLS_LANG값에 의해 원하는 언어로 표현안될경우 등)


SELECT

    TO_CHAR(SYSDATE,'sssss'), -- 해당일자의시분초를기준으로지난초시

    TO_CHAR(SYSDATE, 'PM YYYY/MM/DD HH' ), -- 오전오후표시(AM 마찬가간지 )

    TO_CHAR(SYSDATE, 'MONTH / MON'), -- ex) SEPTEMBER / SEP

    TO_CHAR(SYSDATE, 'DAY'), -- ex) 수요일

    TO_CHAR(SYSDATE, 'DY'), -- ex) 수    'DY' 대신 'D'를 하면 요일 시쿼스 나옴 (일:1 월:2 ~ 토:7)

    TO_CHAR(SYSDATE, 'DY', 'NLS_DATE_LANGUAGE=JAPANESE') -- ex) 水

   FROM DUAL;


NLS_DATE_LANGUAGE 참조

http://docs.oracle.com/cd/B19306_01/server.102/b14225/applocaledata.htm#i634428

-------------------------------------------------------------------------------


 파라미터값 대소문자에 따라 결과의 대소문자도 틀려짐

SELECT

   TO_CHAR(SYSDATE, 'year YEAR'), -- twenty thirteen TWENTY THIRTEEN

    TO_CHAR(SYSDATE, 'Year') -- Twenty Thirteen    

FROM DUAL;

-------------------------------------------------------------------------------

기타 쿼리 사용 예

select extract(month from sysdate) from dual;





'Database&WAS > Oracle' 카테고리의 다른 글

Oracle DB Link  (0) 2014.05.14
오라클 XE 8080 포트 충돌 (톰캣)  (0) 2014.03.13
제약조건 검사 시점  (0) 2013.02.14
Oracle 11g LISTENER  (2) 2012.10.24
WFMLRSVCApp.ear 파일을 찾을 수 없는 오류  (0) 2012.10.23