关闭

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

标签: oracle
5977人阅读 评论(7) 收藏 举报
分类:

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
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Oracle 获取日期的周数

oracle 里支持两种标准的时间, 一种是oracle 自身的标准, 另一种是ISO 的标准 1. oralce 标准 1) 每年的 1 月1号作为这一年的第一天。(不管这一天是星期几) ...
  • oscar999
  • oscar999
  • 2013-12-31 17:11
  • 10543

ORACLE取周、月、季、年的开始时间和结束时间

ORACLE取周、月、季、年的开始时间和结束时间
  • liangweiwei130
  • liangweiwei130
  • 2014-06-24 12:36
  • 7376

oracle数据库获取自然周,按照1月1号到第一个周日为第一周

CREATE OR REPLACE FUNCTION to_week_by_year (sdate IN DATE) RETURN NUMBER IS Result NUMBER ; BEGIN ...
  • huzheaccp
  • huzheaccp
  • 2014-10-09 09:33
  • 2402

ORACLE to_char() 函数获取自然周数

最简单的是使用   /* Formatted on 2009/12/02 16:01 (Formatter Plus v4.8.8) */ SELECT TO_CHAR (TO_DA...
  • xiegh2014
  • xiegh2014
  • 2015-02-28 09:34
  • 341

Oracle日期周详解以及周开始结束时间计算

本文描述ORACLE中周的相关知识点:与周相关的函数以及格式化周所使用的格式字符串。提供了根据跟定时间取周的开始时间和结束时间的方法,以及根据周次取周的开始时间和结束时间:分为自然周(周一到周日),O...
  • liangweiwei130
  • liangweiwei130
  • 2014-07-18 15:35
  • 21976

oracle 当前日期为当年第几周,几天,几月,几季度;ww,iw,w区别

select to_char(TO_DATE('20110101', 'YYYYMMDD'), 'yyyyiw') as week, --oracle求当年的第几周        to_char(T...
  • mengtianyalll
  • mengtianyalll
  • 2014-02-27 10:53
  • 8497

ORACLE to_char() 函数获取自然周数

最简单的是使用   /* Formatted on 2009/12/02 16:01 (Formatter Plus v4.8.8) */ SELECT TO_CHAR (TO_DATE ('2...
  • lcb0913
  • lcb0913
  • 2011-08-28 23:51
  • 462

oracle 自然周跨年度 一周分成两部分

CREATE OR REPLACE FUNCTION UDF_WEEKOFYEAR  ( V_DATE    IN    date ,formate   IN   VARCHAR2 )...
  • ZengMuAnSha
  • ZengMuAnSha
  • 2010-01-04 17:46
  • 2069

Oracle 分组统计,按照天、月份周和自然周、月、季度和年

Oracle 分组统计,按照天、月份周和自然周、月、季度和年
  • JavaAlpha
  • JavaAlpha
  • 2016-08-22 15:33
  • 7277

ORACLE to_char() 函数获取自然周数

最简单的是使用 /* Formatted on 2009/12/02 16:01 (Formatter Plus v4.8.8) */SELECT TO_CHAR (TO_DATE (2009-12-...
  • tianlesoftware
  • tianlesoftware
  • 2009-12-02 16:03
  • 5894
    个人资料
    • 访问:130804次
    • 积分:2245
    • 等级:
    • 排名:第19498名
    • 原创:98篇
    • 转载:100篇
    • 译文:0篇
    • 评论:16条