我要查询表里的某些信息,要求是这些信息是本周有郭记录行为的,问题是怎么去本周的起点呢?
周日到周六为一周,比如,今天是24号,那么这个时间的起点应该是2008-04-20 00:00:00.000我自己写了一个函数。不过太垃圾了。虽然时间可以求出来。但太长了,declare @yy varchar(4),@mm varchar(2),@dd varchar(2),@start varchar(15)
select @yy=datename(yy,getdate())
select @mm=datename(mm,getdate())
select @dd=datename(dd,getdate())
set @start=@yy+'-'+@mm+'-'+@dd
select * from cardInfo where openDate>dateadd(dd,-datepart(dw,getdate())+1,@start)我想简化以上的代码,弄简单点,请教一下,怎么求出‘2008-04-24’啊,我转成varchar后格式就不对了,是要去截取
请各位帮下。谢谢

解决方案 »

  1.   

    select * from cardInfo where openDate>convert(varchar(10),dateadd(day,1-datepart(weekday,getdate()),getdate()),120)
      

  2.   

    select * from cardInfo where datediff(week,openDate,@start) = 0
      

  3.   


    select dateadd(day,-(datediff(day,'19000101',getdate())%7+1),getdate())-----------------------
    2008-04-20 14:36:05.217(1 行受影响)
      

  4.   


    select convert(varchar(10),dateadd(day,-(datepart(weekday,getdate())),getdate()),120)----------
    2008-04-20