計算自然週數 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), 簡單來說就是計算該年的第一週共幾天