다른 명령
편집 요약 없음 |
|||
1번째 줄: | 1번째 줄: | ||
= | == 타임존 시간(+9,서울인경우)으로 도시코드 조회 == | ||
<source lang=sql> | |||
< | CREATE OR REPLACE FUNCTION FN_GET_CTY_TM ( inDate DATE /* 변환 날짜 */ | ||
, inTZNum NUMBER DEFAULT 0 /* 타임존별 시간 +,- */ | |||
) | |||
RETURN DATE IS | |||
/* | |||
FN_GET_CTY_TM(SYSDATE,'+9') -- 서울 기준 | |||
FN_GET_CTY_TM(SYSDATE,'+7') -- 인도네시아/자카르타 | |||
*/ | |||
BEGIN | |||
RETURN inDate + ((inTZNum-9)/24); | |||
EXCEPTION | |||
WHEN OTHERS THEN | |||
DBMS_OUTPUT.PUT_LINE(' FN_GET_CTY_TM() ERROR:' || SQLERRM ); | |||
RETURN NULL; | |||
END FN_GET_CTY_TM; | |||
/ | |||
</source> | |||
== 타임존명으로 도시코드 조회 == | |||
<source lang=sql> | <source lang=sql> | ||
CREATE OR REPLACE FUNCTION XXX."FN_GET_CTY_TZ_TM" ( inDate DATE /* 변환 할 날짜 */ | |||
, inToTimezone VARCHAR2 /* 타임존 이름 Timezone ID ex) 'Asia/Seoul' */ | |||
, inFromTimezone VARCHAR2 DEFAULT 'Asia/Seoul' /* inFromTimezone에서 inToTimezone으로 변환 GMT ex) 'Asia/Seoul' */ | |||
) | |||
RETURN DATE IS | |||
/* | |||
* Example: | |||
- FN_GET_CTY_TZ_TM(SYSDATE, 'America/New_York' ) : SYSDATE | |||
- FN_GET_CTY_TZ_TM(SYSDATE, 'America/New_York', 'Asia/Seoul' ) : SYSDATE | |||
*/ | |||
vInFromTimezone VARCHAR(20) := NULL; | |||
BEGIN | |||
vInFromTimezone := inFromTimezone; | |||
IF inDate IS NULL THEN | |||
RETURN NULL; | |||
ELSIF inToTimezone IS NULL THEN | |||
RETURN NULL; | |||
ELSIF vInFromTimezone IS NULL THEN | |||
vInFromTimezone := 'Asia/Seoul'; | |||
END IF; | |||
RETURN FROM_TZ( CAST( inDate AS TIMESTAMP ) , vInFromTimezone ) AT TIME ZONE inToTimezone ; | |||
EXCEPTION | |||
WHEN OTHERS THEN | |||
DBMS_OUTPUT.PUT_LINE(' RTIS.FN_GET_CTY_TZ_TM() ERROR:' || SQLERRM ); | |||
RETURN NULL; | |||
END FN_GET_CTY_TZ_TM; | |||
/ | |||
</source> | </source> | ||
[[category:oracle]] | |||
2024년 10월 1일 (화) 01:46 기준 최신판
타임존 시간(+9,서울인경우)으로 도시코드 조회
CREATE OR REPLACE FUNCTION FN_GET_CTY_TM ( inDate DATE /* 변환 날짜 */ , inTZNum NUMBER DEFAULT 0 /* 타임존별 시간 +,- */ ) RETURN DATE IS /* FN_GET_CTY_TM(SYSDATE,'+9') -- 서울 기준 FN_GET_CTY_TM(SYSDATE,'+7') -- 인도네시아/자카르타 */ BEGIN RETURN inDate + ((inTZNum-9)/24); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(' FN_GET_CTY_TM() ERROR:' || SQLERRM ); RETURN NULL; END FN_GET_CTY_TM; /
타임존명으로 도시코드 조회
CREATE OR REPLACE FUNCTION XXX."FN_GET_CTY_TZ_TM" ( inDate DATE /* 변환 할 날짜 */ , inToTimezone VARCHAR2 /* 타임존 이름 Timezone ID ex) 'Asia/Seoul' */ , inFromTimezone VARCHAR2 DEFAULT 'Asia/Seoul' /* inFromTimezone에서 inToTimezone으로 변환 GMT ex) 'Asia/Seoul' */ ) RETURN DATE IS /* * Example: - FN_GET_CTY_TZ_TM(SYSDATE, 'America/New_York' ) : SYSDATE - FN_GET_CTY_TZ_TM(SYSDATE, 'America/New_York', 'Asia/Seoul' ) : SYSDATE */ vInFromTimezone VARCHAR(20) := NULL; BEGIN vInFromTimezone := inFromTimezone; IF inDate IS NULL THEN RETURN NULL; ELSIF inToTimezone IS NULL THEN RETURN NULL; ELSIF vInFromTimezone IS NULL THEN vInFromTimezone := 'Asia/Seoul'; END IF; RETURN FROM_TZ( CAST( inDate AS TIMESTAMP ) , vInFromTimezone ) AT TIME ZONE inToTimezone ; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(' RTIS.FN_GET_CTY_TZ_TM() ERROR:' || SQLERRM ); RETURN NULL; END FN_GET_CTY_TZ_TM; /