hyeonga_code

Database_17_날짜 함수_SYSDATE, CURRENT_DATE, SYSTIMESTAMP, CURRENT_TIMESTAMP 본문

Oracle Database

Database_17_날짜 함수_SYSDATE, CURRENT_DATE, SYSTIMESTAMP, CURRENT_TIMESTAMP

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

-- SQL 함수
    -- 날짜 함수
        -- 내부 숫자 형식(세기, 연도, 월, 일, 시, 분, 초)로 날짜를 저장합니다.
        -- 국가별로 기본 날짜 표시 형식이 있습니다.
        -- 연도의 마지막 두 자리만 지정하여 20세기에 21세기 날짜를 저장할 수 있습니다.
            -- 동일한 방식으로 21세기에 20세기 날짜를 저장할 수 있습니다.
SELECT last_name, hire_date
FROM employees
WHERE last_name like 'G%';
    /*
    LAST_NAME   HIRE_DATE
    ---------------------------------------
    Grant                 14/05/24
    Gietz                  09/06/07
    */



    -- 시스템 날짜 연산
        -- 값을 따로 입력하지 않고 시스템에서 가지고 오는 것입니다.
        -- 데이터 유형이 DATE인 함수로 다음을 반환합니다.
            -- 날짜
            -- 시간: 데이터 유형 변환이 필요합니다. > 변환 함수
            -- 종류
                -- SYSDATE : 서버 시스템의 날짜를 기본으로 반환합니다.
                -- CURRENT_DATE : 사용자 시스템의 날짜를 기본으로 반환합니다.
SELECT sysdate, current_date
FROM dual;
    /*
    SYSDATE    CURRENT_DATE                
    ------------------------------------------
    23/06/30       23/06/30           
    */


        -- 데이터 유형이 DATETIME인 함수로 반환합니다.
            -- 날짜
            -- 소수 표시 초 단위 시간 및 시간대_Time Zone
            -- 종류
                -- SYSTIMESTAMP : 서버 시스템의 날짜와 초 단위 시간 및 시간대를 기본으로 반환합니다.
                    -- Time Zone을 OFFSET으로 출력합니다.
                -- CURRENT_TIMESTAMP : 사용자 시스템의 날짜와 초 단위 시간 및 시간대를 기본으로 반환합니다.
SELECT systimestamp, current_timestamp
FROM dual;
    /*
     SYSTIMESTAMP                                   CURRENT_TIMESTAMP
    --------------------------------------------------------------------------------------------------------------
    23/06/30 16:24:24.914000000 +09:00  23/06/30 16:24:24.914000000 ASIA/SEOUL
    */



        -- 시스템 날짜 연산
            -- 날짜에 숫자를 더하거나 빼서 날짜 값을 계산합니다.
            -- 한 날짜에서 다른 날짜를 빼서 날짜 간의 일 수를 알 수 있습니다.
SELECT sysdate+3, sysdate-3
FROM dual;
    /*
    SYSDATE+3     SYSDATE-3
    ---------------------------------------
    23/07/03           23/06/27
    */



        -- 입사한 날짜와 (현재 날짜-입사 날짜) 정보
SELECT last_name, hire_date, sysdate-hire_date, TRUNC(sysdate-hire_date), ROUND(sysdate-hire_date)
FROM employees;
            -- 반나절이 지나면 하루를 추가해주세요 > ROUND( )
    /*
    LAST_NAME HIRE_DATE  SYSDATE-HIRE_DATE    TRUNC( )   ROUND( )
    ---------------------------------------------------------------------------------------------------
    King                02/06/17     7683.6926157407407...     7683          7684
    Kochhar          04/09/21     6856.6926157407407...     6856          6857
    De Haan         08/01/13     5647.6926157407407...     5647          5648
    ...
    */


        -- 시간을 계산하려면 @/24를 연산해야 합니다.
            -- 변환 함수를 알아야 시간을 출력할 수 있습니다.
SELECT sysdate+5/24, sysdate+13/24
FROM dual;
/*
SYSDATE+5/24    SYSDATE+13/24
-------------------------------------------------
23/06/30               23/07/01
*/

반응형