在access中有一字段,为日期/时间(格式为短日期)存放日期,格式2003-5-1。我要查询在某一日期段的信息,输入以下代码总是报错,不知怎样解决?
代码:
  string endate=request.querystring["strstr"];   
  string sqlstr="select   *   from   表   where datestr<='"+ Convert.ToDateTime(enddate).ToShortDateString() + "')" ;
     OleDbConnection oc = new OleDbConnection(constr);
         oc.Open();
         OleDbCommand objcomm = new OleDbCommand(sqlstr, oc);
         OleDbDataReader dr = objcomm.ExecuteReader();
  执行到最后一句,总是报"标准表达式中数据类型不匹配。"错误信息  字段名为deal_date,日期段,开始日期,startDate,截至日期endDate.

解决方案 »

  1.   

    问题在datestr<='"+ Convert.ToDateTime(enddate).ToShortDateString() + "')" ;这句,datestr是短日期格式,而Convert.ToDateTime(enddate).ToShortDateString()转换后得到的是完整的日期/时间格式,不信你自己调试跟踪下看看
      

  2.   

    string sqlstr="select   *   from   表   where datestr<='"+ Convert.ToDateTime(enddate).ToShortDateString() + "')" ; LZ这样肯定错!!
    最后面为什么多了个)?????
    还有datestr<='"+ Convert.ToDateTime(enddate).ToShortDateString() + "')" ;
    这部分感觉很奇怪 !!一会转日期一会又转字符串?
    建议用存储过程吧!
      

  3.   

    记得日期变量要加#的
    datestr<='#"+ Convert.ToDateTime(enddate)+ "#'
      

  4.   

    select * from table1 where _date<#2007-9-25#