2017-09-20 13 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

関連する問題