计算两个日期之间的天数

Calculating the days between 2 dates

在我的数据库中,我有一列如下所示:

而且我需要尝试过滤此 table 中的条目,依据它们是否是从用户选择的日期算起的 30/60/90 天。

这是我在 SQL Server Management Studio 中编写的当前 SQL 查询:

SELECT 
    Account, DCBalance, (SUM(Credit) - SUM(Debit)) AS '30day' 
FROM 
    [Graceland Estates BC].[dbo].[PostGL] AS gl
INNER JOIN 
    [Graceland Estates BC].[dbo].[Client] ON gl.DrCrAccount = Client.DCLink 
WHERE 
    DrCrAccount = 15 AND AccountLink <> '2'
    AND TxDate > 2021-11-30  
GROUP BY
    Account, DCBalance

在此代码中,(SUM(Credit) - SUM(Debit)) 是需要打印的那个时间段的余额。 DrCrAccount 决定余额属于哪个用户。

有谁知道如何从数据库条目中确定数量(以天为单位)?

这是一种方法:

WITH some_cte AS (
  SELECT Account
       , DCBalance
       , Credit
       , Debit
       , CASE
           WHEN TxDate >= DateAdd(dd, -30, GetDate()) THEN '0-30'
           WHEN TxDate >= DateAdd(dd, -60, GetDate()) THEN '30-60'
           WHEN TxDate >= DateAdd(dd, -90, GetDate()) THEN '60-90'
           ELSE '90+'
         END AS date_period
  ...
  WHERE TxDate >= DateAdd(dd, -90, GetDate())
)
SELECT Account
     , DCBalance
     , date_period
     , Sum(Credit) - Sum(Debit) As balance
FROM   some_cte
GROUP
    BY Account
     , DCBalance
     , date_period
;