我想在SQL中计算上周的月数。我有周号和年。
例如。如果我通过WeekNo = 51,Year = 2008,则该函数应返回LastWeekofMonth = 52。
我想使用以下标准来计算周数。
根据瑞典使用的ISO 8601:1988,今年的第一周是在新年之内至少有四天的第一周。
因此,如果您的一周从星期一开始,则每年的第一个星期四都在第一周之内。您可以从中添加DateAdd或DateDiff。
请帮我..........
提前致谢。
如果您使用的是 SQL Server ,则可以使用主表来执行计算,而无需创建日历表。这位同事为您提供了很好的解释,建议您阅读。他的用于计算每个月的第一个和最后一个星期日的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)