我是靠谱客的博主 真实路灯,这篇文章主要介绍oracle 取周数,按周日到下周六为一周,以年为周期算,一年开始为第一周,现在分享给大家,希望可以做个参考。

create or replace function GetWeekNum(I_VALUE IN date,--s
                                            I_SP    VARCHAR2 default null)
  return VARCHAR2 as
  /**
  年開始第一天算第一週
  一周從星期天開始 星期六結束
  周計算
  **/
  V_BEGNUM   NUMBER;
  V_YD       NUMBER;
  V_BEGDT    DATE;
  V_BEGDTNUM NUMBER;
  V_WN       NUMBER;
begin
  IF I_VALUE IS NULL THEN
    RETURN NULL;
  END IF;

  V_BEGNUM := to_char(I_VALUE, 'd', 'NLS_DATE_LANGUAGE=AMERICAN') - 1;
  V_YD     := to_char(I_VALUE, 'ddd');

  V_BEGDT    := I_VALUE - V_YD + 1;
  V_BEGDTNUM := to_char(V_BEGDT, 'd', 'NLS_DATE_LANGUAGE=AMERICAN') - 1;

  V_WN := ceil(V_YD / 7);

  if V_BEGNUM < V_BEGDTNUM then
    V_WN := V_WN + 1;
  end if;

  return to_char(I_VALUE,'YYYY') || I_SP || to_char(V_WN, 'FM00');

end;
 

最后

以上就是真实路灯最近收集整理的关于oracle 取周数,按周日到下周六为一周,以年为周期算,一年开始为第一周的全部内容,更多相关oracle内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部