问题是这样的,我在做个搜索,但是有个下拉框搜索时间的,里面比方有昨天,前台,一周前,一月前,这样的,我怎么写sql啊

解决方案 »

  1.   

    dropdownlisttext值:昨天,前台,一周前,一月前
    value值:1,2,7,30当用户选择了一个后,触发事件,用selectvalue值进行查询。
      

  2.   


    DECLARE @selectvalue INT
    SET @selectvalue = 7SELECT  *
    FROM    yourtable
    WHERE   yourdate BETWEEN DATEADD(day, -@selectvalue, GETDATE())
                     AND     GETDATE()
      

  3.   

    select * from a where CreateTime>dateadd(day,-1,getdate())  dateadd(day,-1,getdate())  昨天
    dateadd(day,-2,getdate())  前天
    dateadd(day,-7,getdate())  上周
      

  4.   

    我的意思是说我得到了选中的值后,在后台怎么写,比如我选择了昨天,value也就是1我怎么写啊
      

  5.   


            <asp:DropDownList ID="drp_date" runat="server" AutoPostBack="true" 
                onselectedindexchanged="drp_date_SelectedIndexChanged">
                <asp:ListItem Value="1">昨天</asp:ListItem>
                <asp:ListItem Value="2">前天</asp:ListItem>
                <asp:ListItem Value="7">一周前</asp:ListItem>
                <asp:ListItem Value="30">一个月前</asp:ListItem>
            </asp:DropDownList>
      

  6.   

    用户选择了后,根据用户选择的selectvalue,然后算出开始时间以及结束时间,然后传给sql构造条件如果不是autoupdate的话,你可以在用户提交后处理
      

  7.   


        //事件
        protected void drp_date_SelectedIndexChanged(object sender, EventArgs e)
        {
            string sValu = drp_date.SelectedValue;//得到value
            //把这个值传到数据库中,得到符合条件的数据就可以了
        }
      

  8.   

    高手我知道你前台的意思,也就是说我现在在后台的搜索事件里面怎么写呢protected void sousuo_Click(object sender, EventArgs e)
        {怎么写,
      

  9.   


        protected void sousuo_Click(object sender, EventArgs e)
        {
            string DayCount = drp_date.SelectedValue;//得到选中的值    }
      

  10.   

    点击控件右侧小三角,配置数据源,创建一个数据库连接。然后选择选择刚建立的数据源,选择dropdownlist空间要显示的字段。
      

  11.   

              DateTime aa = DateTime.Now.ToString();//当前时间
                DateTime bb = aa.Day() - DropDownList.selectedvalue();//到多少时间
    我在按钮里面这样写吗,然后select * from table where beween aa and  bb吗
      

  12.   

    给你写个存储过程,自己调用就行。CREATE PROC GetAllData ( @selectvalue INT )
    AS 
        BEGIN
            SELECT  *
            FROM    yourtable
            WHERE   yourdate < DATEADD(day, -@selectvalue, GETDATE())
        END
      

  13.   

    我的思路是把“昨天”“前天”先转换成日期。比如昨天就是:
    DateTime.Now.AddDays(-1);闲暇时光不想浪费吗?用《Csdn收音机》找个话题聊聊技术吧!
      

  14.   

       SqlCommand cmd = new SqlCommand("SELECT * FROM yourtable WHERE yourdate < DATEADD(day, -" + drp_date.SelectedValue + ", GETDATE())", con);
      

  15.   


            string str = "server='(local)';database='mytable';uid='sa';pwd='sa'";
            SqlConnection con = new SqlConnection(str); //创建连接对象   
            con.Open(); //打开连接 
            SqlCommand cmd = new SqlCommand("SELECT * FROM yourtable WHERE yourdate < DATEADD(day, -" + drp_date.SelectedValue.ToString() + ", GETDATE())", con);
            cmd.ExecuteNonQuery(); //执行SQL命令   
            con.Close(); //关闭连接 
      

  16.   

    yourtable 是那个时间历史时间对吧
      

  17.   

    select语句我给你写了,你是不会执行吧?看这个:
    http://baike.baidu.com/view/3574729.htm有事给我留言吧
      

  18.   


    yourtable --你的表名
    WHERE 
    yourdate --你的时间 
      

  19.   

    程序算出昨天是什么时候,让后可以用大于小于比较时间,或者用between啊:昨天=DateTime.Now.Date.AddDays(-1);select * from Table where 时间>昨天 and 时间<getdate()还在苦苦刷新页面等待回复吗?用《Csdn收音机》告别烦恼!