gpt4 book ai didi

sql - 如何在SQL中按WeekNO和Year计算每月的最后一周

转载 作者:行者123 更新时间:2023-12-04 06:31:30 25 4
gpt4 key购买 nike

我想用 SQL 计算上周的月数。我有周数和年份。

例如。如果我通过 WeekNo=51 , Year=2008 ,那么函数应该返回 LastWeekofMonth= 52。

我想使用以下标准计算周数。

根据瑞典使用的 ISO 8601:1988,一年中的第一周是新年中至少有四天的第一周。

因此,如果您的一周从星期一开始,则任何一年的第一个星期四都在第一周内。您可以从中使用 DateAdd 或 DateDiff。

请帮我..........

提前致谢。

最佳答案

如果您使用的是 SQL Server ,您可以使用主表执行计算,而无需创建日历表。 This fellow给你一个很好的解释,我建议你阅读。他用于计算每个月的第一个和最后一个星期日的 SQL 可以调整以供您使用:

declare @year int
set @year =2011

select min(dates) as first_sunday,max(dates) as last_sunday from
(
select dateadd(day,number-1,DATEADD(year,@year-1900,0))
as dates from master..spt_values
where type='p' and number between 1 and
DATEDIFF(day,DATEADD(year,@year-1900,0),DATEADD(year,@year-1900+1,0))
) as t
where DATENAME(weekday,dates)='sunday'
group by DATEADD(month,datediff(month,0,dates),0)

编辑:获得星期四的日期后,您可以从该日期获得周数,如下所示:
DECLARE @Dt datetime

SELECT @Dt='02-21-2008'

SELECT DATEPART( wk, @Dt)

关于sql - 如何在SQL中按WeekNO和Year计算每月的最后一周,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5352313/

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