2017-09-20 7 views
0

yyyy-MM-dd (사용자 입력 값) 형식의 입력 날짜 값을 GMT로 변환해야하며 모든 시간대를 저장하는 자체 시간대 테이블이 필요합니다. 시간대 값. 따라서 값을 GMT로만 저장하므로 입력 값 (yyyy-MM-dd)을 GMT로 변환해야합니다. FROM_TZ, CAST 함수로 시도했지만 시간대 영역을 찾을 수 없습니다. 누구나 그에 따라 변경을 제안 할 수 있습니까?재스퍼의 날짜 변환에서 시간대 영역을 찾을 수 없음

여기에 몇 가지 샘플 코드가 첨부되어 있습니다 (사용자 입력 값). (GMT)에서 start_time> = to_date (to_char (from_tz (to_timestamp ('2017-09-01', 'yyyy-MM-dd HH : MI : SS AM'), tz.offSet), 'MM/DD/YYYY의 HH : MI AM '),'MM/DD/YYYY의 HH : MI AM ')

감사합니다, 산트

내 경우에 이런 짓을

답변

0

:

-- returns a date value of a date converted in UTC and formated 
cst_timestamp_fmt  constant varchar2(20) := 'DD-MON-YY HH24:MI:SS'; 

function fn_Date_To_UTC_Formated(p_date date) return date is 
    begin 
     return to_date(to_char(
        to_timestamp(
        sys_extract_utc(
          to_timestamp(
            to_char(p_date, 
              cst_timestamp_fmt 
              ), 
            cst_timestamp_fmt 
             ) 
            ) 
           ), 
        'YYYY-MM-DD"T"HH24:MI:SS"Z"' 
          ), 
       'YYYY-MM-DD"T"HH24:MI:SS"Z"' 
        ); 

end fn_Date_To_UTC_Formated; 

및 테스트 :

declare 
cst_timestamp_fmt  constant varchar2(20) := 'DD-MON-YY HH24:MI:SS'; 
function fn_Date_To_UTC_Formated(p_date date) return date is 
     begin 
      return to_date(to_char(
        to_timestamp(
         sys_extract_utc(
           to_timestamp(
             to_char(p_date, 
               cst_timestamp_fmt 
               ), 
             cst_timestamp_fmt 
              ) 
             ) 
           ), 
         'YYYY-MM-DD"T"HH24:MI:SS"Z"'),'YYYY-MM-DD"T"HH24:MI:SS"Z"' 
         ); 

    end fn_Date_To_UTC_Formated; 
begin 
    dbms_output.put_line(' sysdate : '||to_char(sysdate, cst_timestamp_fmt)); 
    dbms_output.put_line(' result : '||to_char(fn_Date_To_UTC_Formated(sysdate),cst_timestamp_fmt)); 
end; 

결과는

입니다.
sysdate : 20-SEP-17 15:20:09 
result : 20-SEP-17 13:20:09 

희망이 도움이 될 수 있습니다.

+0

안녕하세요 SebG, 답장을 보내 주셔서 감사합니다. 내가 이것을 시도하자. – Sant25