返回接下来的 10 天,包括工作日名称

Meg*_*ez7 0 t-sql sql-server

寻找一个查询或函数,对于给定的日期,它将返回接下来的 10 天(包括给定的日期作为参数)作为两列: - 日期 - 工作日名称

我正在使用 SQL Server 2019。

更新(@Dale K):我已经计算了日期和工作日,但这些是作为两个单独的查询和新行而不是多行

declare @mydate datetime
set @mydate = '2020-1-1'

select @mydate + 0, @mydate + 1, @mydate + 2, @mydate + 3, @mydate + 4, @mydate + 5, @mydate + 6

select
datename(dw, @mydate + 0),
datename(dw, @mydate + 1),
datename(dw, @mydate + 2),
datename(dw, @mydate + 3),
datename(dw, @mydate + 4),
datename(dw, @mydate + 5),
datename(dw, @mydate + 6)
Run Code Online (Sandbox Code Playgroud)

Raz*_*col 6

如果你总是需要 10 天,你可以使用这样的函数:

CREATE FUNCTION dbo.GetNext10Days(@FromDate DATE)
RETURNS TABLE AS RETURN
SELECT DATEADD(DAY,n,@FromDate) AS TheDate,
       DATENAME(WEEKDAY,DATEADD(DAY,n,@FromDate)) AS WeekDayName
FROM (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) v(n)

GO
SELECT * FROM dbo.GetNext10Days(GETDATE())
Run Code Online (Sandbox Code Playgroud)

如果您可能需要不同的天数,您可以创建一个返回数字表的函数并调用该函数而不是VALUES子句(要生成数字,我更喜欢此答案中描述的方法:https://stackoverflow。 com/a/1394239/1187211)。