您现在的位置是:首页 >

怎么在数据库中实现计算 详细讲解Oracle数据库的“周数计算”

火烧 2022-07-16 06:36:55 1043
详细讲解Oracle数据库的“周数计算”   ——日期计算 算第 周的第一天及最后一天是几号 y key e   ===========================================

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

  ——日期计算 算第n周的第一天及最后一天是几号 by keynes

  ================================================

  —— ww的算法为每年 月 日为第一周开始 date+ 为每一周结尾

  —— 例如 为第一周的第一天 而第一周的最后一天为 + =

  —— 公式 每周第一天 date + 周 *

  —— 每周最后一天 date + 周 *

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

  =========================================================================

  ——日期计算 算第n周的第一天及最后一天是几号 by keynes

  =========================================================================

  —— ww的算法为每年 月 日为第一周开始 date+ 为每一周结尾

  —— 例如 为第一周的第一天 而第一周的最后一天为 + =

  —— 公式 每周第一天 date + 周 *

  —— 每周最后一天 date + 周 *

  —— 如果以ww格式为主 第 周的起迄如下

   asdb WF>select to_date( yyyymmdd ) + * to_date( yyyymmdd ) + * from dual

  TO_DATE( TO_DATE(

  

   JAN JAN

   asdb WF>select to_date( yyyymmdd ) + * to_date( yyyymmdd ) + * from dual

  TO_DATE( TO_DATE(

  

   APR APR

  Elapsed

  —— 验证如下

   asdb WF>select to_char(to_date( yyyymmdd ) ww ) as weekn to_char(to_date( yyyymmdd ) ww ) as week to_char(to_date( yyyymmdd ) ww ) as week to_char(to_date( yyyymmdd ) ww ) as weekn from dual

  WEEK WEEK WEEK WEEK

  

  

  Elapsed

   asdb WF>

  —— iw的算法为星期一至星期日算一周 且每年的第一个星期一为第一周

  —— 例如 为星期六 所以用iw的算法是前年的 周 而 之后才是第一周的开始

  —— 公式 每周第一天 next_day(date) + 周 *

  —— 每周最后一天 next_day(date) + 周 *

  —— 如果以iw格式为主 第 周的起迄如下

   asdb WF>select next_day(to_date( yyyymmdd ) MONDAY )+ * as first_day next_day(to_date( yyyymmdd ) MONDAY )+ * as last_day from dual

  FIRST_DAY LAST_DAY

  

   JAN JAN

  Elapsed

   asdb WF>

   asdb WF>select next_day(to_date( yyyymmdd ) MONDAY )+ * as first_day next_day(to_date( yyyymmdd ) MONDAY )+ * as last_day from dual

怎么在数据库中实现计算 详细讲解Oracle数据库的“周数计算”

  FIRST_DAY LAST_DAY

  

   APR MAY

  Elapsed

   asdb WF>

  —— 验证如下

   asdb WF>select to_char(to_date( yyyymmdd ) iw ) as weekn to_char(to_date( yyyymmdd ) iw ) as week to_char(to_date( yyyymmdd ) iw ) as week to_char(to_date( yyyymmdd ) iw ) as weekn from dual

  WEEK WEEK WEEK WEEK

  

  

  Elapsed

  其它

  ——== 查今天是 本月 的第几周

  SELECT TO_CHAR(SYSDATE WW ) TO_CHAR(TRUNC(SYSDATE MM ) WW ) + AS weekOfMon from dual

  或

  SELECT TO_CHAR(SYSDATE W ) AS weekOfMon from dual

  ——== 查今天是 今年 的第几周

  select to_char(sysdate ww ) from dual

  或

  select to_char(sysdate iw ) from dual

  附注

  上文所提之iw及ww格式在doc内解释如下

  IW = Week of year ( or ) based on the ISO standard

  WW = Week of year ( ) where week starts on the first day of the year and continues to the seventh day of the year

lishixinzhi/Article/program/Oracle/201311/18798  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码