[ORACLE]날짜 함수 및 날짜구하기

2014. 9. 18. 13:01·Database
반응형
---- 날자 계산하기 ----
 
-- 오늘날자 (현재날자 0시 0분 0초 ...)  
SELECT to_char(trunc(sysdate,'dd')    ,'yyyy/mm/dd hh24:mi:ss') FROM dual ;                   
 
-- 내일날자 (다음날자 0시 0분 0초 ...)  
SELECT to_char(trunc(sysdate,'dd') + 1,'yyyy/mm/dd hh24:mi:ss') FROM dual ;                   
   
-- 내일날자 (다음날자 현재시 현재분 현재초 ...)  
SELECT to_char(sysdate + 1 ,'yyyy/mm/dd hh24:mi:ss') FROM dual ;  
 
 
---- 달 계산하기 ----
 
-- 이번달 시작날자(현재달 1일 0시 0분 0초 ...)  
SELECT to_char(trunc(sysdate,'mm') ,'yyyy/mm/dd hh24:mi:ss') FROM dual ;                      
 
-- 이번달 시작날자(현재달 1일 현재시 현재분 현재초 ...)      
SELECT to_char(sysdate - TO_CHAR(SYSDATE, 'dd') + 1 ,'yyyy/mm/dd hh24:mi:ss') FROM dual ;     
 
-- 다음달 시작날자(다음달 1일 0시 0분 0초 ...)  
SELECT to_char(trunc(add_months(sysdate, + 1),'mm') ,'yyyy/mm/dd hh24:mi:ss') FROM dual ;     
 
-- 다음달 시작날자(다음달 1일 현재시 현재분 현재초 ...)  
SELECT to_char(add_months(sysdate, 1) - to_char(add_months(sysdate, 1), 'dd') + 1,'yyyy/mm/dd hh24:mi:ss') FROM dual ;  
 
-- 다음달 오늘 날자(다음달 현재일 현재시 현재분 현재초 ...)  
SELECT to_char(add_months(sysdate, 1) ,'yyyy/mm/dd hh24:mi:ss') FROM dual ;  
 
 
---- 년 계산하기 ----  
 
-- 올해 시작날자(올해 1월 1일 0시 0분 0초 ...)  
SELECT to_char(trunc(sysdate, 'yyyy') ,'yyyy/mm/dd hh24:mi:ss') FROM dual ;       
 
-- 1년전 현재일자(전년 현재달 현재일 0시 0분 0초 ...)  
SELECT to_char(trunc(add_months(sysdate, -12), 'dd'),'yyyy/mm/dd hh24:mi:ss') FROM dual ;      
 
-- 1년전 현재일자(전년 현재달 현재일 현재시 현재분 현재초 ...)  
SELECT to_char(add_months(sysdate, -12),'yyyy/mm/dd hh24:mi:ss') FROM dual ;   
 
 
---- 참고사항 ----  
 
-- TO_CHAR      : 숫자나 날짜를 문자열로 변환   
-- TO_NUMBER    : 문자를 숫자로 변환   
-- TO_DATE      : 문자를 날짜로 변환   
 
SELECT sysdate() -1 FROM dual;   -- 현재시간 - 1일  
SELECT sysdate() -1/24 FROM dual;  -- 현재시간 - 1시간   
SELECT sysdate() -1/24/60 FROM dual;  -- 현재시간 - 1분  
SELECT sysdate() -1/24/60/60 FROM dual;  -- 현재시간 - 1초  
 
-- YYYY     : 4자리 연도로 표시   
-- YY       : 끝의 2자리 연도로 표시  
-- YEAR     : 연도를 알파벳으로 표시  
-- MM       : 달을 숫자로 표시  
-- MON      : 달을 알파벳 약어 로표시  
-- MONTH    : 달을 알파벳으로 표시  
-- DD       : 일자를 숫자로 표시  
-- DAY      : 일에 해당하는 요일   
-- DY       : 일에 해당하는 요일의 약어   
-- HH       : 12시간으로 표시(1-12)  
-- HH24     : 24시간으로 표시(0-23)  
-- MI       : 분을 표시   
-- SS       : 초를 표시   
-- AM, PM   : 오전인지 오후인지를 표시  
 
 
---- 기초 날자구하기 ----  
 
-- SYSDATE          : 현재 시스템의 날짜 및 시간을 구함   
SELECT sysdate FROM dual;  
 
-- LAST_DAY         : 지정한 날짜의 해당 월의 마지막 날짜를 구함  
SELECT last_day(sysdate) FROM dual;  
 
-------------------------------------------------------------------------------  
-- 두 날자 사이의 차이 (1번째 인자가 2번째인자보다 작으면 음수, 크면 양수)  
-- 날자를 구할때 날자이후 데이터 까지 있다면 계산이 시간단위까지 계산하는듯하다  
-- 그래서 날자까지만 변환해서 잘라줘야 한다.  
 
SELECT to_date(to_char(to_date('20120220042517','yyyymmddhh24miss'), 'yyyymmdd'), 'yyyymmdd') - to_date(to_char(sysdate, 'yyyymmdd'), 'yyyymmdd') FROM dual;  
-------------------------------------------------------------------------------  
 
-- MONTHS_BETWEEN   : 두달 사이의 개월 차이 (1번째 인자가 2번째인자보다 작으면 음수, 크면 양수)  
SELECT MONTHS_BETWEEN(to_date('20120219','yyyymmdd'), sysdate) FROM dual;  
 
-- ADD_MONTHS       : 현재달로부터 지정한 달의 날자를 구함 (즉 1달뒤 2달뒤 등의 날자를 구함)  
SELECT add_months(sysdate, -3) FROM dual;  
 
-- ROUND            : 날짜에 대한 반올림 (12시이후(12:00 00초포함)면 1일을 더함)  
SELECT round(sysdate) FROM dual;  
SELECT round(to_date('20110221120000', 'yyyymmddhh24miss')) FROM dual;  
 
-- TRUNC : 날짜에 대한 버림   
SELECT trunc(sysdate) FROM dual;  
 
 
---- TO_CHAR 의 변환 형식들 ----  
 
-- 9    : 일반적인 숫자를 나타냄   
SELECT to_char('123', '999999') FROM dual;  
 
-- 0    : 앞의 빈자리를 0으로 채움   
SELECT to_char('123', '000000') FROM dual;  
 
-- $    : dollar를 표시함   
SELECT to_char('123', '$999999') FROM dual;  
 
-- L    : 지역 통화 단위(ex \)   
SELECT to_char('123', 'L999999') FROM dual;  
 
-- . : 소숫점을 표시함   
SELECT to_char('123', '999.999') FROM dual;  
SELECT to_char('12.3', '999.999') FROM dual;  
 
-- , : 천단위를 표시함   
SELECT to_char('12345', '999,999,999') FROM dual;
반응형
저작자표시 (새창열림)

'Database' 카테고리의 다른 글

[ORACLE]각각 다른 컬럼업데이트시 다른 테이블 업데이트 TRIGGER  (0) 2014.09.26
[ORACLE] 여러 로우 값을 하나의 컬럼으로 바꾸는 방법  (0) 2014.09.24
[ORACLE] 없는 데이터 강제로 만들기  (0) 2014.09.16
[ORACLE] 오라클 재구동  (0) 2014.08.13
[MSSQL]MSSQL 2005 유지관리 계획 등록 오류  (0) 2013.07.10
'Database' 카테고리의 다른 글
  • [ORACLE]각각 다른 컬럼업데이트시 다른 테이블 업데이트 TRIGGER
  • [ORACLE] 여러 로우 값을 하나의 컬럼으로 바꾸는 방법
  • [ORACLE] 없는 데이터 강제로 만들기
  • [ORACLE] 오라클 재구동
애플자라
애플자라
    반응형
  • 애플자라
    애플자라
    애플자라
  • 전체
    오늘
    어제
    • 분류 전체보기 (655)
      • Linux (93)
      • Programing (92)
      • Flex, Laszlo (15)
      • Database (168)
      • Network (15)
      • Data (14)
      • Tips (119)
      • 여행★ (1)
      • Board (115)
      • 맛집탐방 (3)
      • 아이원츄 (12)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • Love&Smile
    • Husk's repository
    • StartUp
    • DSDSTUDIO Experimentals
    • 신선
    • DEV.SEULKI.KR[이슬기]
    • Live Bit Block
  • 공지사항

  • 인기 글

  • 태그

    파일
    Windows
    DB
    sql
    apache
    user
    설정
    select
    테이블
    Oracle
    delete
    mssql
    윈도우
    server
    백업
    IP
    Toad
    자동차
    DATABASE
    데이터
    eclipse
    오라클
    java
    Linux
    tomcat
    리눅스
    Shell
    table
    서버
    MySQL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
애플자라
[ORACLE]날짜 함수 및 날짜구하기
상단으로

티스토리툴바