oracle 查看时间对应周,oracle数据获取当前自然周,当前周的起始和结束时间

select to_char(sysdate,'iw') from dual; --本周是第几个自然周

select to_char(sysdate,'yyyy') into v_sbzq_nf from dual; -- 当前年份

SELECT to_char(TRUNC(TO_DATE(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd'),'IW'),'yyyy-MM-dd') FROM DUAL;--本周的起始时间(本周周一日期)

SELECT to_char(TRUNC(TO_DATE(to_char(sysdate,'yyyy-MM-dd'),'YYYY-MM-DD'),'IW') + 6,'yyyy-MM-dd') FROM DUAL;--本周的结束时间(本周周日日期)

下面是使用存储过程向数据库中插入一条数据

数据格式 :上报周期                    起始时间结束时间

xxxx年第xx周                  xx.xx                       xx.xx

存储过程如下:

create or replace procedure PRC_T_SJSB_ZYGYPJG is

v_sbzq_zs varchar2(20);--上报周期周数

v_sbzq_nf varchar2(10); --上报周期年份

v_start varchar2(10); --起始月份

v_end varchar2(10); --结束月份

v_sbzq varchar2(20); --上报周期

begin

select to_char(sysdate,'iw') into v_sbzq_zs from dual; --本周是第几个自然周

select to_char(sysdate,'yyyy') into v_sbzq_nf from dual;

SELECT to_char(TRUNC(TO_DATE(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd'),'IW'),'yyyy-MM-dd') into v_start FROM DUAL;--本周的起始时间(本周周一日期)

SELECT to_char(TRUNC(TO_DATE(to_char(sysdate,'yyyy-MM-dd'),'YYYY-MM-DD'),'IW') + 6,'yyyy-MM-dd') into v_end FROM DUAL;--本周的结束时间(本周周日日期)

v_start:=substr(v_start,6);

v_end :=substr(v_end,6);

v_start :=replace(v_start,'/','.');

v_start :=replace(v_start,'-','.');

v_end :=replace(v_end, '/','.');

v_end :=replace(v_end, '-','.');

v_sbzq :=v_sbzq_nf||'年第'||v_sbzq_zs||'周';

insert into T_SJSB_ZYGYPJG (sbzq,sbzt,startdate,enddate) values(v_sbzq,'0',v_start,v_end);

commit;

end PRC_T_SJSB_ZYGYPJG;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值