我想要一个显示会计周的专栏。我们的财政年度从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
答案 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来实现。