hyeonga_code

Database_72_DATETIME 응용_DATETIME 데이터 유형 SQL 함수 본문

Oracle Database

Database_72_DATETIME 응용_DATETIME 데이터 유형 SQL 함수

hyeonga 2023. 8. 24. 08:59
반응형



    -- DATETIME 데이터 유형 SQL 함수
        -- TZ_OFFSET
            -- 입력된 값에 해당하는 시간대 오프셋을 반환합니다.
            /*
            TZ_OFFSET ( 'time_zone_name" | SESSIONTIMEZONE | DBTIMEZONE )
            */
        -- FROM_TZ
            -- TIMESTAMP 값을 TIMESTAMP WITH TIME ZONE 값으로 변환합니다.
            /*
            FROM_TZ ( TIMESTAMP timestamp_vallue, time_zone_value/timezone_name )
            */
        -- TO_TIMESTAMP
            -- 문자열을 TIMESTAMP 데이터 유형으로 변환합니다.
            /*
            TO_TIMESTAMP ( char, [ fmt ], [ 'nlsparam' ] )
            */
        -- TO_YMINTERVAL
            -- 문자열을 INTERVAL YEAR TO MONTH 데이터 유형으로 변환합니다.

        -- TO_DSINTERVAL
            -- 문자열을 INTERVAL DAY TO SECOND 데이터 유형으로 변환합니다.



    -- TZ_OFFSET
-- 여러 지역에 대한 시간대 오프셋을 조회합니다.
SELECT TZ_OFFSET ('US/Eastern'), TZ_OFFSET ('Canada/Yukon'), TZ_OFFSET ('Europe/London')
FROM DUAL;



-- 유효한 시간대 이름 값 리스트를 조회합니다.
SELECT DISTINCT tzname 
FROM v$timezone_names;
    /*
    TZNAME
    ---------------------------------------
    ...
    */
    
-- FROM_TZ
SELECT employee_id, last_name, job_id, FROM_TZ ( hire_date, '+09:00' ) AS hire_date
FROM emp60;


    
-- TO_TIMESTAMP
SELECT * 
FROM emp60
WHERE hire_date >= TO_TIMESTAMP ('2010/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS');
    /*
    EM_ID    LAST_NAME    JOB_ID    HIRE_DATE
    -------------------------------------------------------------
    107       Lorentz          IT_PROG  14/02/07 00:00:00
    */
    
-- TO_YMINTERVAL
SELECT ord_no, prod_id, ord_date, ord_date+TO_YMINTERVAL('3-6') AS 보증만료일
FROM orders;
    /*
    ORD_NO    PROD_ID    ORD_DATE    보증만료일
    -----------------------------------------------------
    100001     ABC-D001   23/07/14     27/01/14
    100002     EFG-H325    23/07/14     27/01/14
    100003     JKL-M108    23/07/14     27/01/14
        -- 보증 기간이 3개월인 경우 '0-3'으로 작성해야 합니다.
        -- 보증 기간이 6개월인 경우 '0-6'으로 작성해야 합니다.
    */ 
    
-- TO_DSINTERVAL
SELECT prod_id, systimestamp, systimestamp+TO_DSINTERVAL('3 12:00:00') AS 세일만료일
FROM orders;
        -- 3일만 하는 경우 '3 00:00:00'으로 작성해야 합니다.
        -- 12시간만 하는 경우 '0 12:00:00'으로 작성해야 합니다.




    -- 일광 절약 시간제_DAYLIGHT SAVING TIME
        -- 대부분의 서방 국가에서는 여름 몇 개월 동안 시계를 1시간 앞당기게 됩니다.
        -- 미국, 멕시코 및 캐나다의 경우 일광 절약 시간은 4월의 첫 번째 일요일부터 10월의 마지막 일요일까지 지속됩니다.
        -- 지정된 시간대 지역에서 일광 절약 시간이 시행되는 지 여부를 자동으로 확인하고 로컬 시간을 반환합니다.

반응형