如何计算会计周

时间:2016-02-18 14:41:34

标签: sql

我想要一个显示会计周的专栏。我们的财政年度从4月开始。

到目前为止,我有以下内容,使用datename(ww,DateAndTime)作为周

DateAndTime                 Week 
2015-04-01 22:45             14
2015-06-14 13:22             25
2015-12-02 09:15             49
2016-01-01 07:35              1

我希望输出显示:

DateAndTime                 Week            Fiscal Week 
2015-04-01 22:45             14                  1
2015-06-14 13:22             25                 12 
2015-12-02 09:15             49                 36              
2016-01-01 07:35              1                 41

1 个答案:

答案 0 :(得分:0)

虽然我不理解财政周背后的逻辑(1到41之间的差异是40,但是在14到1之间它是39),也许我错过了某些东西或者你打错了。

但是,一般情况下你会做这样的事情(假设差异是40周):

SELECT week, (week+40)%52 AS fw FROM ...

如果会计年度每个星期都开始一个不同的周(例如,第13周或第14周,具体取决于年份),您可以使用日期和时间功能,但它们可能因SQL版本而异。在MySQL中,您有YEAR()MONTH()WEEK()

例如:

SELECT week, (week+(52-WEEK(CONCAT_WS('-', YEAR(NOW()), '04-01'))))%52 FROM ...

但这可能有点矫枉过正。

注意:可以采用另一种方式计算:如果从周中减去差异而不是添加,则如果数字为负数,则需要添加52。您可以通过添加52然后执行模数(%)52来实现。