計算自然週數 (Function)

計算自然週數 Function


create or replace function GetWeekOfYear(dt Timestamp) 
 return number
is
weekOfYear number; 
begin
  select ceil
  (
     (
        to_number(to_char(dt, 'DDD')) -
        (8 - to_char(trunc(dt, 'YYYY'), 'D'))
     ) / 7 + 1
  ) into weekOfYear from dual;       
 
  return weekOfYear;
end GetWeekOfYear;

第 9 行 : 計算該日期為今年的第幾天

第 10 行 : 8-該日期在今年的第一天是星期幾(星期日=1, 星期一=2…, 星期六=7), 簡單來說就是計算該年的第一週共幾天