创建会计周数
Posted
技术标签:
【中文标题】创建会计周数【英文标题】:create fiscal week number 【发布时间】:2017-06-14 15:55:00 【问题描述】:如何将以下逻辑转换为 SQL Server 用于的格式?
if (datepart(week,getdate())-4) <= 0 then (datepart(week,getdate())+49) else (datepart(week,getdate())-4)
【问题讨论】:
只需制作一个包含财政周数的表格。以后你会感谢我的。 你试过什么?向我们展示您正在调试的内容。 感谢 Jacob,我们确实有一个内置日历,但对于像我这样的新用户来说,它过于复杂了,不过现在想快速创建自己的日历! 这就是@JacobH 稍后感谢他的意思——当你不必修复你已经忘记你刚刚“快速创建”的东西的地方时。 @JamesZ 然后当您需要在 10 个不同的报告中使用会计周时,您必须将“快速创建的东西”复制 10 次。然后,当您需要修改它时,您必须找到所有报告并快速更新快速创建的内容 10 次以上......然后当您需要新报告时,您必须再次找到快速创建的内容并将其复制到新的代码和......然后下次你回到那 10 个地方并更新你的代码,除了这次你忘记了第 11 个地方......你当然明白我要去哪里了。 【参考方案1】:CASE 语句应该有效:
CASE
WHEN (datepart(week,getdate())-4) <= 0
THEN datepart(week,getdate())+49
ELSE
datepart(week,getdate())-4
END
【讨论】:
【参考方案2】:您可以使用case
表达式:
SELECT CASE WHEN (DATEPART(WEEK, getdate()) - 4) <= 0
THEN DATEPART(WEEK, getdate()) + 49
ELSE DATEPART(WEEK, getdate()) - 4
END
【讨论】:
【参考方案3】:对于 SQL Server 2012+,您可以使用IIF
SELECT IIF((datepart(week, getdate())-4) <= 0, datepart(week, getdate()) + 49, datepart(week, getdate()) - 4 )
对于低于 SQL Server 2012 的版本,您可以使用CASE
。
【讨论】:
以上是关于创建会计周数的主要内容,如果未能解决你的问题,请参考以下文章