我有一个表是以日期为第一列的,我想要查询一个日期,然后在gridview中显示该日期所在周的每一行数据,比如查询2013/7/30 ,下面的显示是
周一 2013/7/29
周二 2013/7/30
周三 2013/7/31
周四 2013/8/1
周五 2013/8/2
周末不显示

解决方案 »

  1.   


    --ID,day是csdn表中的两个字段,day为日期,'2013-07-30'为你要查询的日期
         select ID,day from (select id,datename(week,day)as week,day from csdn) b where week=(select DATENAME(WEEK,'2013-07-30'))
      

  2.   


     --ID,day是csdn表中的两个字段,day为日期,'2013-07-30'为你要查询的日期
         select ID,day,DATENAME(weekday,day) from (select id,datename(week,day)as week,day from csdn) b where week=(select DATENAME(WEEK,'2013-07-30'))
      

  3.   


    --ID,day是csdn表中的两个字段,day为日期,'2013-07-30'为你要查询的日期
         select ID,day,DATENAME(weekday,day) as weekday from (select id,datename(week,day)as week,day from csdn) b where week=(select DATENAME(WEEK,'2013-07-30'))结果如下:
    ID day weekday
    1 2013-07-30 星期二
    2 2013-07-29 星期一
    3 2013-07-31 星期三
    5 2013-08-01 星期四
    6 2013-08-02 星期五
    7 2013-08-03 星期六
      

  4.   


    --ID,day是csdn表中的两个字段,day为日期,'2013-07-30'为你要查询的日期
    select ID,day,DATENAME(weekday,day) as weekday from (select id,datename(week,day)as week,day from csdn) b where week=(select DATENAME(WEEK,'2013-07-30')) order by day加上按日期排序后的结果:
    ID day weekday
    2 2013-07-29 星期一
    1 2013-07-30 星期二
    3 2013-07-31 星期三
    5 2013-08-01 星期四
    6 2013-08-02 星期五
    7 2013-08-03 星期六
      

  5.   

    可以,这是我随便建的表,能满足楼主的需要。DATENAME是什么?我要把selecet出来的日期绑定到gridview的时候星期一、星期二这些字还能显示吗
      

  6.   

    datename是SQL Server中的函数。当然可以显示的,绑定的时候指定字段名就可以了。
      

  7.   

    我知道原因了,查询的时候是以周日为一周的第一天来显示的,所以在周日查询的时候实习上显示的是下一周的数据。
    还有个问题是我的表不止ID,day,weekday三列,其他列要怎么显示?