如何在SQL查询中编写一个日期范围的代码,使其从当前日期向前追溯3周,并从当前日期向前追溯1周。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SQL查询中编写一个日期范围的代码,使其从当前日期向前追溯3周,并从当前日期向前追溯1周。相关的知识,希望对你有一定的参考价值。
-- 这段代码只提取未来7天内的到期日,忽略了最近21天的到期日--如何在SQL查询中对日期范围进行编码,使其从当前日期往前追溯3周,并从当前日期往前追溯1周。
select top 10 D.VendID as Customer , D.DueDate, sum(CuryTranAmt) as Amount, C.CpnyName Company
from APTran A
left join APDoc D
on A.RefNbr = D.RefNbr
inner join [SIVSYS].[dbo].[Company] C
on D.CpnyID = C.CpnyID
where
A.trantype NOT IN ('CK', 'HC')
and A.DrCr like 'C'
and (D.DueDate BETWEEN GETDATE() AND DATEADD(DAY, -21, GETDATE())) OR (D.DueDate BETWEEN GETDATE() AND DATEADD(DAY, +7, GETDATE()))
and D.DocBal <> '0'
group by
D.VendID
,C.CpnyName
,D.DueDate
,A.CuryTranAmt
,D.RefNbr
,D.BatNbr
order by (A.CuryTranAmt) desc
答案
你的第一个条件的界限是 between
倒置:最低界大于上界,所以没有日期能匹配上。
我想,你只是想要。
where d.dueDate
between dateadd(day, -21, getdate())
and dateadd(day, 7, getdate())
有可能,你要的是整个天数,所以。
where
d.dueDate >= dateadd(day, -21, cast(getdate() as date))
and d.dueDate < dateadd(day, 6, cast(getdate() as date))
以上是关于如何在SQL查询中编写一个日期范围的代码,使其从当前日期向前追溯3周,并从当前日期向前追溯1周。的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 argparse Python 在 SQL 查询中传递日期范围参数