oracle使用to_date查询一周的第一天日期

周使用iw方式计算,如果一年当中第52周别之后至当年的12月31日之间,还有大于或等于4天的话,则定为当年的第53周,否则剩余这些天数被归为下一年的第1周

复制代码 代码如下:

create or replace function f_week_to_date(a_week varchar2) return char is 

  v_first_date   char(10); 

  v_date_of_week number(1); 

begin 

  select to_char(to_date(substr(a_week, 1, 4) || ‘0101’, ‘yyyymmdd’), ‘d’) 

    into v_date_of_week 

    from dual; 

  v_date_of_week := v_date_of_week – 1; 

  if v_date_of_week <= 4 then 

    select to_char(to_date(substr(a_week, 1, 4) || ‘0101’, ‘yyyymmdd’) + 

                   substr(a_week, 5, 2) * 7 – 7 – v_date_of_week + 1, 

                   ‘yyyy-mm-dd’) 

      into v_first_date 

      from dual; 

  else 

    select to_char(to_date(substr(a_week, 1, 4) || ‘0101’, ‘yyyymmdd’) + 

                   substr(a_week, 5, 2) * 7  – v_date_of_week + 1, 

                   ‘yyyy-mm-dd’) 

      into v_first_date 

      from dual; 

  end if; 

  return v_first_date; 

end;

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐