如何找到自会计月开始以来的天数?

Joh*_*nux 3 sql-server t-sql sql-server-2008-r2 datetime date

这与我的问题有关如何在 SQL 服务器中找到上个月的第 XX 天?

会计月从每个月的 26 日开始。

我需要从任何日期找出:

  • 会计月的开始日期 (Start_Of_Fiscal_Month)
  • 进入会计月的天数 (Day_Of_Fiscal_Month)

例如:

CurrentDate - '2014-04-26'

Start_Of_Fiscal_Month = 2014-04-26
Day_Of_Fiscal_Month = 1
Run Code Online (Sandbox Code Playgroud)
CurrentDate - '2014-05-02'

Start_Of_Month = 2014-04-26
Day_Of_Fiscal_Month = 7
Run Code Online (Sandbox Code Playgroud)

Jos*_*ira 5

这将做到:

DECLARE @d DATE = '20140502', @dm TINYINT = 26;
DECLARE @Start_Of_Fiscal_Month DATE

SET @Start_Of_Fiscal_Month = DATEADD(DAY, @dm-1, DATEADD(MONTH, -1 + DATEPART(dd, @d)/26, DATEADD(DAY, 1-DAY(@d), @d)));
SELECT @Start_Of_Fiscal_Month
SELECT DATEDIFF(dd, @Start_Of_Fiscal_Month, @d) + 1
Run Code Online (Sandbox Code Playgroud)