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

原创 2015年11月18日 10:27:55

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;



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

Oracle 获取本周、本月、本季、本年的第一天和最后一天

摘自:http://wangguorui89.iteye.com/blog/1926014 Oracle 获取本周、本月、本季、本年的第一天和最后一天 --本周 sele...
  • kikiwhq
  • kikiwhq
  • 2017年05月25日 15:00
  • 304

ORACLE TO_CHAR()函数如何获取自然周

很多時間我們需要用Oracle提供的to_char()函數來取得某個日期是屬於今年的第幾週.例如:TO_CHAR(TO_DATE(20090112,YYYYMMDD), WW) ,得到的結果是02,就...

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

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

Oracle 获取日期的周数

oracle 里支持两种标准的时间, 一种是oracle 自身的标准, 另一种是ISO 的标准 1. oralce 标准 1) 每年的 1 月1号作为这一年的第一天。(不管这一天是星期几) ...

oracle 判断今天是星期几

有人问怎么判断今天是星期几? select to_char(sysdate,'d') from dual     很显然这句并不能完成要求的功能,因为这只是显示当前为本星期的第几天,而老外把星期天...
  • myflysun
  • myflysun
  • 2012年05月31日 20:53
  • 21746

Oracle取上周一到周末日期的查询语句

Oracle取上周一到周末日期的查询语句 -- Oracle 取上周一到周末的sql      -- 这样取的是 在一周内第几天,是以周日为开始的  select to...

如何获Oracle 得某周的第一天和最后一天

本次用户要开发做成品周预测的数据的录入

Oracle中如何获取系统当前时间

Oracle中如何获取系统当前时间   select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;    ORACLE里获取一个时间的...
  • llwan
  • llwan
  • 2015年12月09日 11:31
  • 12586

Oracle 查询当天、当周、当月和当季度的所有记录

Oracle 字段类型为varchar2,格式要与格式化的样式匹配 当天 select * from 表名 where to_char(to_date(字段名,'yyyy-mm-dd hh...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle数据获取当前自然周,当前周的起始和结束时间
举报原因:
原因补充:

(最多只允许输入30个字)