gpt4 book ai didi

sql - 在函数 SQL 中获取给定月份的星期日日期

转载 作者:行者123 更新时间:2023-12-05 03:10:12 25 4
gpt4 key购买 nike

我遇到了一个问题。我想使用一个函数在一个月内没有星期日,尽管我使用一个过程获得了类似的结果,但我需要在我的选择查询中调用该函数以返回每个选择的结果。我的程序代码已给出

    create proc [dbo].[getSundaysandSaturdays]
(
@Year int=2016,
@Month int=11,
@fdays as int output
)
as
begin
;with dates as
(
select dateadd(month,@month-1,dateadd(year,@year-1900,0)) as StartDate
union all
select startdate + 1 from dates where month(startdate+1) = @Month
)
select @fdays=count(*) from dates where datediff(dd,0,startdate)%7 in (4)
return @fdays
end

最佳答案

您当前的问题是您无法从选择中调用存储过程。你需要一个功能。这是一个工作函数。

另一个问题 - 避免使用递归 sql 来计算一个月中的星期日。这个“简单”的表达式将计算一个月中的星期日。

CREATE function f_count_sundays
(
@Year int,
@Month int
) returns int
BEGIN
DECLARE @x date = dateadd(month,@month-1+(@year-1900)*12,6)
RETURN datediff(d, dateadd(d,datediff(d,-1,@x)/7*7,-1),dateadd(m,1,@x))/7
END

go

SELECT dbo.f_count_sundays(2016,10)

结果:

5

关于sql - 在函数 SQL 中获取给定月份的星期日日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40742687/

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