【发布时间】:2020-04-27 09:02:12
【问题描述】:
我的财政年度从 7 月 1 日到 6 月 30 日开始。我想从财政年度开始计算一年的周数。 第 1 周,第 2 周 第 3 周...第 52 周等
【问题讨论】:
我的财政年度从 7 月 1 日到 6 月 30 日开始。我想从财政年度开始计算一年的周数。 第 1 周,第 2 周 第 3 周...第 52 周等
【问题讨论】:
以下将为您提供 number 数据类型中的周数
to_number(to_char(to_date('07/01/2019','MM/DD/YYYY'),'WW')) as week_num
如果您想要基于 ISO 标准的一周,请使用以下内容
to_number(to_char(to_date('07/01/2019','MM/DD/YYYY'),'IW')) as week_num
【讨论】:
fiscal year starts from 1st july to 30 June。您的查询会将 1 月 1 日视为第 1 周的开始。
试试这个:
FLOOR(theDate - TO_DATE('07/01/2019','MM/DD/YYYY')) / 7) + 1 AS FISCAL_WEEK
其中theDate 是介于 07/01/2019 和 06/30/2020 之间的日期。
【讨论】:
你可以使用条件逻辑:
select (case when extract(month from sysdate) < 7
then floor((sysdate - trunc(sysdate, 'YYYY')) / 7) + 1
else floor((sysdate - (trunc(sysdate, 'YYYY') + interval '6' month))/7) + 1
end) as fiscal_week
这使用sysdate 来表示日期。当然,您可以将其替换为您的日期列。
【讨论】: