计算两个日期之间的天数
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
;
在我的数据库中,我有一列如下所示:
而且我需要尝试过滤此 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
;