您现在的位置是:首页 >

表格日期格式转换不了 从Unix到Oracle的日期转换

火烧 2022-07-31 06:03:25 1035
从U ix到Oracle的日期转换   CREATE OR REPLACE FUNCTION U ix_To_Oracle_Date       _u ix_date IN NUMBER   Ra g

从Unix到Oracle的日期转换  

表格日期格式转换不了 从Unix到Oracle的日期转换
  CREATE OR REPLACE FUNCTION Unix_To_Oracle_Date  (    p_unix_date IN NUMBER   Range of >=     p_num_hr_gmt_diff IN PLS_INTEGER   Range of to +     ) RETURN DATE AS          CONSTANTS      These CONSTANTS below are of POSITIVE type to indicate that they    CANNOT be less than       c_SECONDS_IN_DAY CONSTANT POSITIVE := ;    c_HOURS_IN_DAY CONSTANT POSITIVE := ;        c_UNIX_EPOCH_DATE_TIME_STRING CONSTANT VARCHAR ( ) := / / : : ;    c_DATE_FORMAT CONSTANT VARCHAR ( ) := MM/DD/YYYY HH :MI:SS ;      VARIABLES      v_sql_code PLS_INTEGER;    v_sql_error_message VARCHAR ( );      The variables have to be of NUMBER type because a PLS_INTEGER divided by    another PLS_INTEGER can result in a fraction thus the result must be of    NUMBER type only      v_unix_seconds NUMBER;    v_gmt_time_gap NUMBER;      v_return_value DATE;    BEGIN      IF(NOT (p_num_hr_gmt_diff < ( c_HOURS_IN_DAY)) AND     NOT (p_num_hr_gmt_diff > (c_HOURS_IN_DAY))) THEN       v_unix_seconds := (p_unix_date / c_SECONDS_IN_DAY);     v_gmt_time_gap := (p_num_hr_gmt_diff / c_HOURS_IN_DAY);       v_return_value := TO_DATE(c_UNIX_EPOCH_DATE_TIME_STRING c_DATE_FORMAT) +              v_unix_seconds + v_gmt_time_gap;    ELSE     v_return_value := NULL;    END IF;      RETURN(v_return_value);    EXCEPTION      WHEN OTHERS THEN     v_sql_code := SQLCODE;     v_sql_error_message := SQLERRM(v_sql_code);       DBMS_OUTPUT PUT_LINE( OTHER ERROR );     DBMS_OUTPUT PUT_LINE(v_sql_error_message);    END Unix_To_Oracle_Date;   lishixinzhi/Article/program/Oracle/201311/16933  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码