gpt4 book ai didi

sql - 需要为 Date 逻辑编写查询

转载 作者:行者123 更新时间:2023-12-04 21:02:23 26 4
gpt4 key购买 nike

我有一个下面的查询,它有一个日期过滤器,如 EST_PICK_DATE between '2015-02-01' and '2015-06-01',其中逻辑是 EST_PICK_DATE 应该是从当前月份开始的 3 个月和下个月的第一个日期。即本月 MAY,EST_PICK_DATE 应该在 '2015-02-01''2015-06-01' 之间。
我需要动态地编写下面的查询。
在下面的查询中,我硬编码了值 '2015-02-01''2015-06-01',但它应该是动态的。
如何做到这一点?我在 SSIS 包中使用这个查询,那么我应该在 SQL 级别做还是我们应该在包中实现这个逻辑?如果是,怎么做?

INSERT INTO STG_Open_Orders (Div_Code, net_price, gross_price)
SELECT ord.DIV_CODE AS Div_Code, ord_l.NET_PRICE AS net_price, ord_l.gross_price AS gross_price,
FROM ORD ord inner join ORD_L ord_l ONord.ORD_ID=ord_l.ORD_ID
WHERE ord_l.EST_PICK_DATE BETWEEN '2015-02-01' AND'2015-06-01'

最佳答案

试试这个

INSERT INTO STG_Open_Orders (Div_Code, net_price, gross_price)
SELECT ord.DIV_CODE AS Div_Code, ord_l.NET_PRICE AS net_price, ord_l.gross_price AS gross_price,
FROM ORD ord inner join ORD_L ord_l ONord.ORD_ID=ord_l.ORD_ID
WHERE ord_l.EST_PICK_DATE BETWEEN DATEADD(m, DATEDIFF(m, 0,DATEADD(month,-3,getdate())), 0) AND DATEADD(m, DATEDIFF(m, 0,DATEADD(month,1,getdate())), 0)

这是你的开始日期和结束日期函数

SELECT DATEADD(m, DATEDIFF(m, 0,DATEADD(month,-3,getdate())), 0)
2015-02-01 00:00:00.000

SELECT DATEADD(m, DATEDIFF(m, 0,DATEADD(month,1,getdate())), 0)
2015-06-01 00:00:00.000

具体日期:

Declare @YourDate as date = '6/3/2015' -- note the format is mm/dd/yyyy
SELECT CAST(DATEADD(m, DATEDIFF(m, 0,DATEADD(month,-3,@YourDate)), 0) as date)
SELECT CAST(DATEADD(m, DATEDIFF(m, 0,DATEADD(month,1,@YourDate)), 0) as date)

关于sql - 需要为 Date 逻辑编写查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30437043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com