主要是针对时间类型的数据,数据库里面我的时间是这样的2010/5/19 0:00:0,datatime类型。在aspx页面上拉一个textbox控件和一个button控件,textbox控件输入要检索的内容。假如我要按月份检索,SQL语句该怎么写?例如我要2月份的资料,可以这样写:select * from table1 where  时间 like '%02%'但是如果我要1月份的资料,这样写却不行:select * from table1 where  时间 like '%01%'这样会把2010年的全部检索出来,不符合要求,应该怎么样写呢?当然,如果我要按日来检索资料,也会产生类似的情况,应该怎么办呢?大侠们都是怎么样实现时间检索的?或者数据库里是怎么保存时间数据的?谢谢哥哥们。

解决方案 »

  1.   

    month(时间) =1 就可以一月份 
      

  2.   

    month(时间) =2 就可以2月份  
      

  3.   

    month(时间) =3 就可以3月份  
      

  4.   

    查2月份的资料,select * from table1 where DatePart(year, 时间) = 2
    但更好的方法是根据文本构造日期范围,起始日期和结束日期,然后:
    select * from table1 where 时间 >= '2010-02-01' And 时间 < '2010-03-01',至于时间范围怎么构造,你可以自己定义。
      

  5.   

    开始时间=convert.ToDateTime("当前年-01-01");
    结束时间=DateTime.NOw;
    然后 "select ...where 时间>=" + "N'开始时间"' + " and 时间< 'N" + 结束时间 + "'" ...
      

  6.   

    "select ...where 时间>=N'" + 开始时间 +"' and 时间< 'N" + 结束时间 + "'" ...
    上面写错了,更正一下
      

  7.   

    额...数据库里的时间列不是datetime类型???
      

  8.   

    看错...加个日历控件当textbox控件获得焦点时显示出来,让客户选日期或是用两个dropdownlist一个选年分一个选月份,查询方法上面几位大大都说了...
      

  9.   

    嗯,这个方法不错,限定用户的查询格式,不过,呵呵,也许我有点点贪心,我是想在一个textbox里既可以按时间查询,又可以按内容查询,呵呵。限定用户的查询格式的话,可以新建一个页面,高级搜索,嗯嗯。
      

  10.   

    兄弟啊
    你可知道'%01%'中的%代表着什么吗??
    代表着模糊查询,只要是带01的就符合条件,就全给你查出来,所以你想要一月份的就把2010的全给你查出来了。你问题出在,你把整个日期当成了查询条件。没有指出是年,月还是日。
    这个问题应该先把月提出来作为条件使用。
    给你个方法,你先试试。select * from table1 where month(‘时间’) ='01'
      

  11.   

    嗯,昨天晚上试了一下,select * from table1 where month(‘时间’) ='01'的话的确是可以,那我要按时间查询的话,不是要分几个条件了?年、月、日分开。
      

  12.   

    select * from table1 where month('时间') ='1' and datediff(yy,'时间',getdate())=0查詢本年度 一月份數據
      

  13.   

    如果是月份,如一月, 你模糊查询也是like '%1%' ,而不是 like '%01%'.select * from 表
    where month(日期) like '%9%' or year(日期) like '%2009%' or day(日期) like '%3%'
      

  14.   

    不过时间都不用 like 来查询的。。
      

  15.   

    ...一个textbox里既可以按时间查询,又可以按内容查询....那你怎么判断查询条件??前面加一个dropdownlist选择查询条件??那就根据查询条件判断是不是按日期查询,然后正则表达式限定textbox输入格式.
    例如:在dropdownlist的textchange事件里加 
    if(dropdownlist.value="月份")
    {
        //选择查询条件
        //正则限制textbox格式,^\d{4}\-\d{1,2}-\d{1,2}$,用户现在只能输入2010-01-09形式的字符串
    }
    再在button事件里加判断
    if(dropdownlist.value="月份")
    {
       //
    }