본문 바로가기
develop/db

oracle 날짜 관련 함수

by hybr1d 2014. 11. 20.

select /* 오늘날짜 시분초 포함*/ 
              to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') 
    from dual

 
select /* 오늘날짜 00시 00분 00초 */ 
              to_char(trunc(sysdate),'yyyy/mm/dd hh24:mi:ss') 
    from dual
 
select /* 오늘날짜 00시 00분 00초 위와 동일*/ 
              to_char(trunc(sysdate,'dd'),'yyyy/mm/dd hh24:mi:ss') 
    from dual

select /* 이번달 1일 00시 00분 00초 */ 
              to_char(trunc(sysdate,'mon'),'yyyy/mm/dd hh24:mi:ss') 
    from dual

select /* 올해 1월 1일 00시 00분 00초 */ 
              to_char(trunc(sysdate,'year'),'yyyy/mm/dd hh24:mi:ss') 
    from dual
 
select /* 올해 1월 1일 00시 00분 00초 */ 
              to_char(to_date('2002','yyyy'),'yyyy/mm/dd hh24:mi:ss') 
    from dual
 
select /* 2월 1일 00시 00분 00초 */ 
              to_char(to_date('200202','yyyymm'),'yyyy/mm/dd hh24:mi:ss') 
    from dual

select /* 2월 2일 00시 00분 00초 */ 
              to_char(to_date('20020202','yyyymmdd'),'yyyy/mm/dd hh24:mi:ss') 
    from dual
 
select /* 2월 2일 00시 00분 01초 */ 
              to_char(to_date('20020202','yyyymmdd')+1/68400,'yyyy/mm/dd hh24:mi:ss') 
    from dual
 
select /* 2월 2일 00시 00분 00초 -> 한달뒤*/ 
              to_char(add_months(to_date('20020202','yyyymmdd'),1),'yyyy/mm/dd hh24:mi:ss')

 from dual
 
from en-core
laalaal~ 
 
 
날짜 빼기
 
밑에 날짜 빼기가 있던데 요건 약간 다르게..
(1) 현재 날자에서 하루를 빼고 싶다고 하면 
            select sysdate() - 1 from dual
(2) 1시간을 빼고 싶으면 
            select sysdate() - 1/24 from dual
(3) 1분을 빼고 싶으면 
            select sysdate() - 1/24/60
(q) 1초를 빼고 싶은면 어떻게 할까요? ^^
 
======================================================================================
- 날짜형 함수

    SYSDATE : 현재 시스템의 날짜 및 시간을 구함

    LAST_DAY : 지정한 날짜의 해당 월의 마지막 날짜를 구함

    MONTHS_BETWEEN : 두 날짜 사이의 개월 수를 구함

    ADD_MONTHS : 지정한 날짜로부터 몇 개월 후의 날짜를 구함

    ROUND : 날짜에 대한 반올림

    TRUNC : 날짜에 대한 버림

 

    SYSDATE : SYSDATE  10-MAY-99

    LAST_DAY(날짜값) : LAST_DAY('17-FEB-98')  28-FEB-98

   MONTHS_BETWEEN(날짜값1, 날짜값2) : MONTHS_BETWEEN('26-APR-97','22-JUL-95')  21.1290323

   ADD_MONTHS(날짜값, 숫자값) : ADD_MONTHS('22-JUL-95',21)  22-APR-97

      ROUND(날짜값, 자리수) : 현재 날짜가 1999년 5월 10일이라고 가정하자.

                              ROUND(SYSDATE,'MONTH')  01-MAY-99

      TRUNC(날짜값, 자리수) : 현재 날짜가 1999년 5월 10일이라고 가정하자.

                              TRUNC(SYSDATE,'YEAR')  01-JAN-99

 

  - 날짜에 대한 산술연산

    날짜 + 숫자 : 날짜 특정한 날로부터 몇일 후의 날짜 계산

    날짜 - 숫자 : 날짜 특정한 날로부터 몇일 전의 날짜 계산

    날짜 - 날짜 : 숫자 두 날짜 사이의 차이를 숫자로 계산

 

- 변환형 함수

    TO_CHAR : 숫자나 날짜를 문자열로 변환

    TO_NUMBER : 문자를 숫자로 변환

    TO_DATE : 문자를 날짜로 변환

 

      - TO_CHAR에서 숫자를 문자로 변환시에 형식에 사용되는 요소

          9 : 일반적인 숫자를 나타냄

          0 : 앞의 빈자리를 0으로 채움

          $ : dollar를 표시함

          L : 지역 통화 단위(ex \)

          . : 소숫점을 표시함

          , : 천단위를 표시함

      - TO_CHAR에서 날짜를 문자로 변환시에 형식에 사용되는 요소

          SCC : 세기를 표시 S는 기원전(BC) 

          YEAR : 연도를 알파벳으로 spelling

          YYYY : 4자리 연도로 표시

          YY : 끝의 2자리 연도로 표시

          MONTH : 월을 알파벳으로 spelling

          MON : 월의 알파벳 약어

          MM : 월을 2자리 숫자로 표시

          DAY : 일에 해당하는 요일

          DY :  일에 해당하는 요일의 약어

          DDD,DD,D : 연도,월,일 중의 날짜를 숫자로 표시

          HH , HH24 : (1-12) , (0-23)중의 시간을 표시

          MI : 분을 표시

          SS : 초를 표시

          AM(A.M.),PM(P.M.) : 오전인지 오후인지를 표시

 

      TO_CHAR(문자값,형식)

        숫자를 문자로 변환 : TO_CHAR(350000,'$999,999') $350,000

        숫자를 날짜로 변환 : TO_CHAR(SYSDATE,'YY/MM/DD') 95/05/25

      TO_DATE(문자값, 형식) : TO_DATE('10 SEPTEMBER 1992','DD MONTH YYYY')10-SEP-92

      TO_NUMBER(문자값) : TO_NUMBER('1234') 1234


'develop > db' 카테고리의 다른 글

postgresql 컬럼, 코멘트 조회  (0) 2020.06.17
MYSQL 테이블 컬럼명 조회 쿼리  (0) 2019.01.03
MySQL 에서 DATETIME 형식 조회 할 시 빠르게 조회하는 법  (0) 2018.04.11
MSSQL 날짜 변환 convert  (0) 2016.09.07
ORA-01017  (0) 2014.11.17