gpt4 book ai didi

sql - 声明日期,然后添加下一个工作日

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

我没有得到我需要的结果。

我想要做的就是声明我的日期,然后添加下一个工作日。 IE。 @CASHDATE+1 (这有效),但我需要下一个工作日是 5 号。

DECLARE  @CASHDATE DATETIME
SET @CASHDATE='2016-12-02'

SELECT <<COLUMN_NAME>> FROM <<TABLE_NAME>>
WHERE RECEIVED_DATE = @CASHDATE /*'2016-12-02'*/
AND TRANS_POST_DATE = @CASHDATE+1 /*'2016-12-05'*/) <== I don't want it to be '2016-12-03 or 04', I'm trying to get the next business day.

欢迎任何关于如何实现这一目标的想法。我一直在尝试 DATEPART(dw, @CASHDATE) NOT IN (1, 7) 但我就是无法得到我想要的结果。

最佳答案

DATEADD(day,
CASE
WHEN DATENAME(dw,CASHDATE) = 'Friday' THEN 3
WHEN DATENAME(dw,CASHDATE) = 'Saturday' THEN 2
ELSE 1
END,
CASHDATE)

这是一个向您展示如何计算的示例

DECLARE @Dates AS TABLE (CASHDATE DATETIME)
INSERT INTO @Dates VALUES ('2016-11-28'),('2016-11-29'),('2016-11-30'),('2016-12-01'),('2016-12-02'),('2016-12-03'),('2016-12-04')

;WITH cteNextBizDays AS (
SELECT
CASHDATE
,NextBusinessDay = DATEADD(day,
CASE
WHEN DATENAME(dw,CASHDATE) = 'Friday' THEN 3
WHEN DATENAME(dw,CASHDATE) = 'Saturday' THEN 2
ELSE 1
END
,CASHDATE)
FROM
@Dates
)

SELECT
CASHDATE
,DATENAME(dw,CASHDATE) CashDateDayOfWeek
,NextBusinessDay
,DATENAME(dw,NextBusinessDay) NextBusinessDayDayofWeek
FROM
cteNextBizDays

使用 DATEPART(dw,Date) 时需要考虑的注意事项之一是 DATEFRIST 设置是什么。通过与 DATENAME 比较,您不必担心这一点。

关于sql - 声明日期,然后添加下一个工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40985656/

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