sql server - datepart function not working in sql azure -


i want split date part year , assign variable in stored procedure. run stored procedure in sql azure. throws error "reference database and/or server name in 'master..spt_values' not supported in version of sql server."

code:

declare @year int set @year =datepart(yyyy,getdate()) create table #sundaydates (sunday datetime,nextsunday datetime) insert #sundaydates(sunday,nextsunday) select max(dates),max(dateadd(dd,+7,dates)) last_sunday (     select dateadd(day,number-1,dateadd(year,@year-1900,0)) dates     master..spt_values type='p' ,     number between 1 , datediff(day,dateadd(year,@year-1900,0),dateadd(year,@year-1900+1,0)) ) t datename(weekday,dates)='sunday' group dateadd(month,datediff(month,0,dates),0) 

this query gives same results (as result set, rather inserting temp table, can adapted so) , doesn't rely on spt_values table error message tells you isn't allowed:

;with numbers (num) (     select 0 union select 1 union select 2 union select 3 union select 4 union select 5 union     select 6 union select 7 union select 8 union select 9 union select 10 union select 11 ), monthends (     select dateadd(month,datediff(year,'20010101',current_timestamp)*12 + n.num,'20010131') enddate     numbers n ), lastsundays (     select dateadd(day,-n.num,enddate) enddate             monthends me             cross join         numbers n             n.num between 0 , 6 ,         datepart(weekday,dateadd(day,-n.num,enddate)) = datepart(weekday,'20130512') ) select enddate,dateadd(day,7,enddate) followingsunday lastsundays 

Comments

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -