簡單的記錄一下,以免忘記:
DECLARE V_PERIOD_BEGIN_DATE DATE; V_PERIOD_END_DATE DATE; V_YEAR_BEGIN_DATE DATE; V_PERIOD_NAME VARCHAR2(20) := '2015-11'; BEGIN SELECT TO_DATE(V_PERIOD_NAME, 'YYYY-MM', 'NLS_DATE_LANGUAGE =American') INTO V_PERIOD_BEGIN_DATE FROM DUAL; DBMS_OUTPUT.PUT_LINE('會計期間第一天:' || V_PERIOD_BEGIN_DATE); SELECT LAST_DAY(TO_DATE(V_PERIOD_NAME, 'YYYY-MM', 'NLS_DATE_LANGUAGE =American')) INTO V_PERIOD_END_DATE FROM DUAL; DBMS_OUTPUT.PUT_LINE('會計期間最後一天:' || V_PERIOD_END_DATE); SELECT TO_DATE('01-JAN-' || SUBSTR(V_PERIOD_NAME, 3, 2), 'DD-MON-YY', 'NLS_DATE_LANGUAGE =American') INTO V_YEAR_BEGIN_DATE FROM DUAL; DBMS_OUTPUT.PUT_LINE('年度第一天:' || V_YEAR_BEGIN_DATE); END;
結果:
會計期間第一天:01-11月-15
會計期間最後一天:30-11月-15
年度第一天:01-1月 -15