• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
studyingeveryday
要想改变世界,从改变自己开始!
博客园    首页    新随笔    联系   管理    订阅  订阅
获取月报、季报、半年报,年报等
CREATE OR REPLACE PROCEDURE INPUT_DATE(NEW_DATE VARCHAR) --YYYYMMDD  VARCHAR
AS
D_DATE DATE;
V_SQL VARCHAR2(200);
--VAR_DATE VARCHAR2(10)
BEGIN
 D_DATE := TO_DATE(NEW_DATE,'YYYYMMDD');  --日期格式
 --VAR_DATE = TO_CHAR(D_DATE,'YYYYMMDD')  --字符串格式
 V_SQL := 'INSERT INTO YSY_TEST SELECT :i,D_DATE,:PINDU FROM TABLE_NAME WHERE MODIFY_DATE>= :STARTDATE AND MODIFY_DATE <= :VAR_DATE';
 
   FOR I IN 1..5 LOOP
     IF I = 1 AND D_DATE = TO_CHAR(LAST_DAY(D_DATE),'YYYYMMDD') then  --判断D_DATE是否为月末最后一天
        START_DATE := TO_CHAR(TRUNC(D_DATE,'MM'),'YYYYMMDD');--本月初
        EXECUTE IMMEDIATE V_SQL USING i,D_DATE,START_DATE,D_DATE;
        COMMIT;
     ELSE IF I = 2 AND MOD(TO_NUMBER(TO_CHAR(D_DATE,'MM')),3) = 0  --判断D_DATE是否为3、6、9、12
        AND D_DATE = ADD_MONTHS(TRUNC(D_DATE,'Q'),3)-1 THEN  --判断D_DATE是否为季的最后一天
        START_DATE := TRUNC(D_DATE,'Q');  --季初
        EXECUTE IMMEDIATE V_SQL USING i,NEW_DATE,START_DATE,D_DATE;
        COMMIT;
     ELSE IF I = 3 AND TO_CHAR(D_DATE,'MM') <'07'  --判断是否为上半年
        AND NEW_DATE = ADD_MONTHS(TRUNC(D_DATE,'YYYY'),6)-1 THEN --判断是否为上半年最后一天
        START_DATE := TRUNC(D_DATE,'YYYY');  --上半年初
        EXECUTE IMMEDIATE V_SQL USING i,D_DATE,START_DATE,D_DATE;
        COMMIT;
     ELSE IF I = 4 AND TO_CHAR(D_DATE, 'MM') > '06'  --判断是否为下半年
        AND NEW_DATE = ADD_MONTHS(TRUNC(D_DATE,'YYYY'),12)-1 THEN  --判断是否为下半年最后一天
        START_DATE := ADD_MONTHS(TRUNC(D_DATE,'YYYY'),6);  --下半年初
        EXECUTE IMMEDIATE V_SQL USING i,D_DATE,START_DATE,D_DATE;
        COMMIT;
     ELSE IF I = 5 AND NEW_DATE = ADD_MONTHS(TRUNC(D_DATE,'YYYY'),12)-1 THEN --判断是否为年末最后一天
        START_DATE := TRUNC(D_DATE,'YYYY');  --年初
        EXECUTE IMMEDIATE V_SQL USING i,D_DATE,START_DATE,D_DATE;
        COMMIT;
     END IF;
   END LOOP;

END INPUT_DATE;
posted on 2019-08-19 19:07  studyingeveryday  阅读(323)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3