【发布时间】:2020-02-14 20:06:42
【问题描述】:
我正在尝试编写一个 SQL 查询,根据它所在的财务期显示天数和日期的计数。财务期从月底前 5 天开始,例如 3 月 27 日至 4 月 26 日
对于上述期间,如果日期是 3 月 29 日,则当天计数应为 3,日期应为 2020-04。日期应根据其所处的时期进行调整。
我试图通过编写以下脚本来解决此查询的第二部分,但它没有带来任何结果
declare @date datetime
set @date = getdate()
SELECT format (date,'yyyy-MM-dd') as date
where @date
between dateadd(day,-5,EOMONTH(getdate(),-1)) and dateadd(day,-5,EOMONTH(getdate()))
【问题讨论】:
-
您的财务周期有不同的天数。如果日期是 1 月 25 日,则 2 月财务期间没有对应的日期。因此,您的问题需要更多关于业务规则的解释。
-
欢迎来到 Stack Overflow。获取Tour 并阅读How To Ask。阅读此well structured question,然后阅读edit 您的问题以及其他详细信息,以帮助我们为您提供帮助。
-
@GordonLinoff 感谢您的回复,我已经编辑了实际帖子,添加了一个简短的脚本来解决这个问题的一部分,所以您可以检查一下。
-
declare @d date = '20200329'; select iif(@d < dateadd(day, -5, EOMONTH (@d, 0)), dateadd(day, -5, EOMONTH (@d, -1)) , dateadd(day, -5, EOMONTH (@d, 0))) as startoffinancialmonth, datediff(day, iif(@d < dateadd(day, -5, EOMONTH (@d, 0)), dateadd(day, -5, EOMONTH (@d, -1)) , dateadd(day, -5, EOMONTH (@d, 0))), @d) daysdiff;
标签: sql sql-server