首页|资讯|互联网|电信|硬件|软件|情报|产经|博客|家庭|商用电脑|游戏|评测|学院|下载|网络通信|方案应用|搜索
移动计算|商用软件|外包|开源|中间件|企业|IT经理|发烧友|程序员|IT女性|学生|老板|笔记本|手机|台式机|数码|论坛
程序员

详细讲解Oracle数据库的“周数计算”

2008-03-18 23:45 作者:刘明昭 来源:赛迪网
[摘要] 详细讲解"Oracle"数据库的“周数计算”,包括对于几周后的第几天,几天后的第几周的计算等。
[关键字] Oracle 数据库 周数计算
  1、日期计算,算第n周的第一天及最后一天是几号。

  1)ww的算法为每年1月1日为第一周开始,date+6为每一周结尾

  例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107

  公式 每周第一天 :date + 周 * 7 - 7

  每周最后一天:date + 周 * 7 - 1

  你会发现怎么编排格式都会跑掉。

  2、日期计算,算第n周的第一天及最后一天是几号。 1)ww的算法为每年1月1日为第一周开始,date+6为每一周结尾

  例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107

  公式 每周第一天 :date + 周 * 7 - 7

  每周最后一天:date + 周 * 7 - 1

  如果以ww格式为主,第1、17周的起迄如下

  127.0.0.1:asdb:WF>select to_date('20050101','yyyymmdd') + 1*7-7,to_date('20050101','yyyymmdd') + 1*7-1 from dual;

  TO_DATE(' TO_DATE('

  01-JAN-05 07-JAN-05

  127.0.0.1:asdb:WF>select to_date('20050101','yyyymmdd') + 17*7-7,to_date('20050101','yyyymmdd') + 17*7-1 from dual;

  TO_DATE(' TO_DATE('

  23-APR-05 29-APR-05

  Elapsed: 00:00:00.00

  验证如下

  127.0.0.1:asdb:WF>select to_char(to_date('20050422','yyyymmdd'),'ww') as weekn,to_char(to_date('20050423','yyyymmdd'),'ww') as week1,to_char(to_date('20050429','yyyymmdd'),'ww') as week2,to_char(to_date('20050430','yyyymmdd'),'ww') as weekn2 from dual;

  WEEK WEEK WEEK WEEK

  16 17 17 18

  Elapsed: 00:00:00.00

  127.0.0.1:asdb:WF>
关键词: Oracle, 数据库, 周数计算,
  • 我要留言
关于eNet | 广告服务 | 版权声明 | 加入eNet | 联系我们 | 建议/投诉 | 网站导航 | 加入收藏

网站合作、内容监督、商务咨询、投诉建议:010-65245588
合作建议:hezuo@mail.enet.com.cn
Copyright © 1998--2008 硅谷动力公司版权所有 京ICP证000044号

京ICP证000044号