본문 바로가기
오라클 게시판/오라클 함수

【오라클(Oracle) SQL 함수】 TRUNC (date) 함수

by 기서무나구물 2021. 10. 23.

포스팅 목차

    TRUNC (date)

     


    문 법

     

    trunc_date::=

     


    목 적

    TRUNC(date) 함수는 날짜의 시간 부분을 형식 모델 fmt에서 지정한 단위를 기준으로 절삭(버림)한 후 변경된 날짜를 반환한다.

    이 함수는 NLS_CALENDAR 세션 매개변수의 영향을 받지 않는다. 그레고리력 규칙에 따라 작동한다. date 인수에 다른 datetime 데이터 유형을 지정한 경우에도 반환되는 값은 항상 DATE 데이터 유형이다. fmt 인수를 생략하면 기본 서식 모델 'DD'가 사용되고, 오전 0시(자정)를 기준으로 절삭(잘린)된 date 값을 반환한다. fmt 인수에서 사용할 수 있는 서식 모델은 'ROUND 및 TRUNC 날짜 함수'를 참조하라.

     


    패키지 함수 비교 (Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table)

     


    관련 함수

    함수명 함수내용
    ADD_MONTHS 일자 date에 특정 개월 수에 해당하는 integer를 더한 값을 반환한다.
    FLOOR 지정한 숫자보다 작거나 같은 정수 중에서 최댓값을 반환한다. (내림 함수)
    CEIL 인수에서 지정한 수치를 올림 하여 정수를 구하는 함수이다. (절삭 함수)
    LAST_DAY 해당 날짜가 속한 달의 마지막 날짜를 반환한다. 월마다 마지막 날짜가 다르므로 유용하게 사용될 수 있다. 
    MOD n2을 n1으로 나눈 나머지 값(Remainder)을 반환한다.
    MONTHS_BETWEEN 날짜와 날짜 사이의 개월 수를 출력하는 함수이고, ADD_MONTHS 함수는 기준 날짜에서 특정 개월 수를 더한 날짜를 출력하는 함수이다.
    NEXT_DAY 해당일을 기준으로 명시된 요일의 가장 가까운 다음 요일에 해당하는 날짜를 반환한다.
    ROUND (date) date 값을 포맷 모델 fmt에 지정한 단위로 반올림한 날짜를 반환한다.
    TRUNC (date) 날짜 부분(date)에서 포맷 모델 fmt에서 지정한 단위를 기준으로 날짜를 절삭(버림)하여 변경된 날짜를 반환한다.
    TRUNC(number) 수치 값 n1을 소수점 자리 중(소수점을 기준으로 양수 방향의 정수부 또는 음수 방향의 소수부)에서 파라미터 n2의 자리 이하를 절삭(버림, Truncation)한다.

     


    예 제

    다음 예제는 년도를 기준으로 해당 날자를 절삭한다. (년의 초일자)

    Oracle Program
    SELECT TRUNC(TO_DATE('27-OCT-92','DD-MON-YY'), 'YEAR') "New Year" 
    FROM   DUAL;

     

    Results
    New Year
    ---------
    01-JAN-92

     


    TRUNC 함수를 사용한 날짜 서식 지정: 예시

    다음 예제에서 TRUNC 함수는 서식 모델에서 지정한 대로 따라 날짜의 시간 부분을 절삭한 입력 날짜를 반환한다.

    Oracle Program
    WITH dates AS (   
      SELECT date'2015-01-01' d FROM dual union   
      SELECT date'2015-01-10' d FROM dual union   
      SELECT date'2015-02-01' d FROM dual union   
      SELECT timestamp'2015-03-03 23:45:00' d FROM dual union   
      SELECT timestamp'2015-04-11 12:34:56' d FROM dual    
    )   
    SELECT d "Original Date",   
           trunc(d) "Nearest Day, Time Removed",   
           trunc(d, 'ww') "Nearest Week", 
           trunc(d, 'iw') "Start of Week",   
           trunc(d, 'mm') "Start of Month",   
           trunc(d, 'year') "Start of Year"   
    FROM dates;

     

    Results
    Original Date	              Nearest Day, Time Removed	   Nearest Week     	  Start of Week	  Start of Month	Start of Year
    01-JAN-15 12.00.00.000000 AM	01-JAN-15	               01-JAN-15	  29-DEC-14	     01-JAN-15	       01-JAN-15
    10-JAN-15 12.00.00.000000 AM	10-JAN-15	               08-JAN-15	  05-JAN-15	     01-JAN-15	       01-JAN-15
    01-FEB-15 12.00.00.000000 AM	01-FEB-15	               29-JAN-15	  26-JAN-15	     01-FEB-15	       01-JAN-15
    03-MAR-15 11.45.00.000000 PM	03-MAR-15	               26-FEB-15	  02-MAR-15	     01-MAR-15	       01-JAN-15
    11-APR-15 12.34.56.000000 PM	11-APR-15	               09-APR-15	  06-APR-15	     01-APR-15	       01-JAN-15

     


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

    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE]
    SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크

    2023.12 수정

    반응형

    댓글