今天,最近三天,最近一周,最近一个月 查找内容,这是前台代码<select name="adddate" size="1" >
      <option selected value="">请选择</option>
     <option  value="0">今天</option>
 <option  value="3">最近三天</option>
 <option  value="7">最近一周</option>
         <option  value="30">最近一个月</option>
    </select>后台我是这样写的
    if (PageValidate.IsDigit(Request, "adddate") != string.Empty)
        {
            
            adddate = Request["adddate"];
        }
        switch(adddate)
        {
            case "0":
                wheres += " and Datediff(day,adddate,getdate())<adddate";
                break;
            case "3":
                wheres += " and Datediff(day,adddate,getdate())<adddate";
                break;
            case "7":
                wheres += " and Datediff(day,adddate,getdate())<adddate";
                break;
            case "30":
                wheres += " and Datediff(day,adddate,getdate())<adddate";
                break;
            default:
                break;
        
        }请问为什么点了没效果呢?wheres 是下面的查询语句里的条件,我还有按关键字查找的,按关键字查找有效果.

解决方案 »

  1.   

    你转换的日期类型是否正确???你断点调试下,看看获得的sql语句是什么???
      

  2.   


    下面就是一个分页的  string page = Request["page"];
            Page PageClass = new Page(tables, "id,username,tel,email,respective_projects,(select top 1 tname from customer_users where id=" + tables + ".userid) as rname,adddate,(select top 1 id from customer_alone_record where comid=" + tables + ".id) as reid", wheres, "id", "1", "id", "" + urls + "?keywords=" + keyword + "&page=", 30, page, "");
            PageClass.Get_Content(newslist);
            pagestring.Text = PageClass.Get_Page();
      

  3.   

    where Datediff(day,数据库中日期字段,getdate())<多少天内你的这二个字段都放在里面了。应该改成" and Datediff(day,adddate,getdate())<"+adddate;
      

  4.   


    我打印了wheres 当选择日期进行筛选时,无论选 哪一个wheres都是 and Datediff(day,adddate,getdate())
      

  5.   

    不太了解啥意思,但是给你一个答案参考下,或许对你有帮助
    查询最近一个月的时间
    (sql编程)
    declare @id varchar(19)--定义一个变量接收
    select @id=CardId from cardinfo where datepart(yyyy,openDate)=datepart(yyyy,getdate())and 
    datepart(MM,openDate)=datepart(MM,getdate())
      

  6.   

    正确写法如下:   if (PageValidate.IsDigit(Request, "adddate") != string.Empty)
            {
                
                adddate = Request["adddate"];
            }
            switch(adddate)
            {
                case "0":
                    wheres += " and Datediff(day,adddate,getdate())="+adddate;
                    break;
                case "3":
                    wheres += " and Datediff(day,adddate,getdate())<"+adddate;
                    break;
                case "7":
                    wheres +=" and Datediff(day,adddate,getdate())<"+adddate;
                    break;
                case "30":
                    wheres += " and Datediff(day,adddate,getdate())<"+adddate;
                    break;
                default:
                    break;
            
            }给遇到类似问题的人参考
      

  7.   

    请问下,明天,后天,比较这样写为什么不可以:
    <select name="appdate" size="1" >
          <option selected value="">请选择</option>
      <option  value="-7">未来一周</option>
       <option  value="-3">未来三天</option>
       <option  value="-2">后天</option>
       <option  value="-1">明天</option>
                <option  value="0">今天</option>
         </select>     switch (appdate)
            {
                case "-7":
                    wheres += " and Datediff(day,appdate,getdate())<" + appdate;
                    break;
                case "-3":
                    wheres += " and Datediff(day,appdate,getdate())<" + appdate;
                    break;
                case "-2":
                    wheres += " and Datediff(day,appdate,getdate())=" + appdate;
                    break;
                case "-1":
                    wheres += " and Datediff(day,appdate,getdate())=" + appdate;
                    break;
               
                case "0":
                    wheres += " and Datediff(day,appdate,getdate())=" + appdate;
                    break;
                default:
                    break;        }