--1.
select 本年第几周=datename(week,getdate())--2.
调用存储过程的参数不能是函数,可以这样调用:
declare @dt datetime
set @dt=getdate()
exec test @dt--3.
DATENAME
返回代表指定日期的指定日期部分的字符串。语法
DATENAME ( datepart , date )更具体的参考SQL联机帮助--4.无影响--5.同意

解决方案 »

  1.   

    --2.完整的if exists(select name from sysobjects where type='p' and name='test')
    drop proc test
    go
    create proc test @dat datetime
    as
      select datename(week,@dat)
    godeclare @dt datetime
    set @dt=getdate()
    exec test @dt
      

  2.   

    select datediff(dd,'2004-01-01',getdate())/7即可得出当前是2004年得第几周
      

  3.   

    TO:arrow_gx(8088的脑袋) 这样不行,如果说是第15天,/7后得2.多,按道理来讲应该是第三周了,但取整后会得第二周,谢谢两位!!!
      

  4.   

    TO:zjcxc(邹建) 那这里算出来的周是按像我们系统日期格式的一周一周还是说7天为一周,如:1-7为一周。8-14为第二周?