寻找一个查询或函数,对于给定的日期,它将返回接下来的 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)
如果你总是需要 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)。
归档时间: |
|
查看次数: |
655 次 |
最近记录: |