第一次在这个网站上发布海报,我需要一些建议:
是否可以基于 while 循环声明/创建新变量?
语境:
该公司的财务日历为财务年度内的每个日期分配一个期间(月)和一个周数。这些可以根据新财政年度的日期每年更改。
我想创建一个运行 while 循环的函数,以获取指定日期的周数和周期数。
我希望能够说一些类似的东西
while i > @EndDate
if date is between such and such then week = @W(i)
end
我不知道如何解释。
我目前的函数列出了所有周数和周期数,但它看起来很乱,可能效率不高。
任何人都可以建议吗?
谢谢
编辑:
道歉
我的代码在 SQL Server 中。
到目前为止,我的草稿很杂乱,但我先把它放在这里。
declare @StartDate datetime
, @EndDate datetime
, @ThisDate datetime
, @P1 datetime
, @P2 datetime
, @P3 datetime
, @P4 datetime
--and so forth until P12
, @W1 datetime
, @W2 datetime
, @W3 datetime
, @W4 datetime
, @W5 datetime
--and so forth until W52
set @StartDate = '2012-12-30'
set @P1 = @StartDate + 35
set @P2 = @P1 + 28
set @P3 = @P2 + 28
set @P4 = @P3 + 35
set @P5 = @P4 + 28
set @P6 = @P5 + 28
set @P7 = @P6 + 35
set @P8 = @P7 + 28
set @P9 = @P8 + 28
set @P10 = @P9 + 35
set @P11 = @P10 + 28
set @P12 = @P11 + 28
set @W1 = @StartDate
set @W2 = @W1 + 7
set @W3 = @W2 + 7
set @W4 = @W3 + 7
set @W5 = @W4 + 7
set @W6 = @W5 + 7
--while @ThisDate > @EndDate
set i = 1
--BEGIN
if @ThisDate between @StartDate and (@W2 - 1)
then @ThisWeek = W1, @ThisPeriod = P1
--END