hyeonga_code

Database_19_날짜 함수_ROUND, TRUNC 본문

Oracle Database

Database_19_날짜 함수_ROUND, TRUNC

hyeonga 2023. 7. 22. 05:59
반응형

 

-- 날짜 데이터에 ROUND / TRUNC 함수
        -- ROUND : 반올림합니다.
        -- TRUNC : 버림합니다.
        -- YEAR 'yyyy' : 한 해의 7월 1일을 기준으로 지정된 날짜를 당년, 혹은 다음 해의 1월 1일로 초기화합니다.
        -- MONTH 'mm' : 각 달의 중간_15일 지정된 날짜를 당월 혹은 다음 월의 1일로 초기화합니다.
            -- 1달이 31일인 경우 15일 정오, 1달이 30일인 경우 14일 자정이 기준이 됩니다.
        -- DD : 정오를 기준으로 지정된 날짜를 특정 일의 자정으로 초기화합니다.
        -- : 수요일을 기준으로 지정된 날짜를 전후 일요일로 초기화합니다.
SELECT ROUND(sysdate, 'yyyy'), ROUND(sysdate,'mm'), ROUND(sysdate, 'dd'), ROUND(sysdate, 'day')
FROM dual;
    /*
    R(sys..., 'yyyy')        R(sys...,'mm')          R(sys..., 'dd')         R(sys..., 'day')
    -------------------------------------------------------------------------------------------------------
    24/01/01                  23/07/01                  23/07/03               23/07/02
    */



SELECT TRUNC(sysdate, 'yyyy'), TRUNC(sysdate,'mm'), TRUNC(sysdate, 'dd'), TRUNC(sysdate, 'day')
FROM dual;
    /*
    T(sys..., 'yyyy')       T(sys...,'mm')         T(sys..., 'dd')        T(sys..., 'day')
    ----------------------------------------------------------------------------------------------------------
    23/01/01                  23/07/01                23/07/03              23/07/02
    */



SELECT employee_id, MONTHS_BETWEEN( TRUNC(sysdate, 'mm'), TRUNC(hire_date, 'mm'))
FROM employees;
    /*
    EM_ID     M_BETWEEN( TRUNC(sys..., 'mm'), TRUNC(hire_..., 'mm'))
    -------------------------------------------------------------------------------------------------------
    100                                               253
    101                                               226
    102                                               186
    103                                               222
    ...
    */

반응형