sql="select * from counter where date='"+time+'";
或者sql="select * from counter where date=\'"+time+"\'";

解决方案 »

  1.   

    sql="select * from counter where date='"+time+"'";
    上面漏了一个分号。
      

  2.   

    where date=TO_DATE('"+time+"', 'yyyy-mm-dd HH24:MI:SS')
      

  3.   

    怎么搞三个单引号啊?一个够了:
    sql="select * from counter where date='"+time+'";
    还有不知楼主的time是不是只有时间的意思?如果是那样的话,前面的date要转换才行,sqlserver用convert函数,oracle用to_char函数
      

  4.   

    sql="select * from counter where date='"+time+'"
      

  5.   

    time是String
    该成sql="select * from counter where date='"+time+"'";
    不行,他报错
    javax.servlet.ServletException: Can not issue data manipulation statements with executeQuery().
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.count_jsp._jspService(count_jsp.java:193)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause java.sql.SQLException: Can not issue data manipulation statements with executeQuery().
    com.mysql.jdbc.Statement.checkForDml(Statement.java:1429)
    com.mysql.jdbc.Statement.executeQuery(Statement.java:1094)
    org.apache.jsp.count_jsp._jspService(count_jsp.java:85)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      

  6.   

    这是你的这个SQL在SQL服务器上运行有错,查一下你生成的这个STRING在SQL里能不能运行吧,可能是有SQL的语法错误,最后生成的应是
    sql="select * from counter where date='2005-1-2'";这样的形式,你的是这样的吗?
    System.out.println(sql)出来并复制到查询分析器里运行一下试试吧先
      

  7.   

    如果date是varchar类型,而time是字符类型的话,sql语句如下:
    sql="select * from counter where date='"+time+"'"
      

  8.   

    如果是Oracle数据库 
    sql="select * from counter where to_char(date,'yyyy-mm-dd')='"+time+"'"
      

  9.   

    如果是SQL SERVER 数据库 
    sql="select * from counter where CONVERT(DATETIME, '"+time+"',102)";
    如果是ACCESS数据库 
    sql="select * from counter where #'"+time+"'#";  
      

  10.   

    象这样有参数的SQL语句,楼主可以用PreparedStatement这个类,它的功能绝不会比Statement这个类要差,而且它在传递参数的时候是非常方便的,根本就不要你去考虑什么引号的问题。
    如:
    String sql="select * from counter where date=?";
    PreparedStatement pre=con.prepareStatement(sql);
    pre.setDate(1,time); //time就是那个问号的参数值,这样你就不用去管什么引问的问题了。
    ResultSet res=pre.executeQuery();
      

  11.   

    我用的是mysql4.0,各位高手,指点一下小弟嘛!!!代码出错如下:Can not issue data manipulation statements with executeQuery().
    我的time是String
    我的date 是char time="m"+String.valueOf(month)+"d"+String.valueOf(day);
     sql="select * from counter where date='"+time+"'";//我想这句有错的
      rs=smt.executeQuery(sql);
      

  12.   

    sql="select * from counter where date='"+time+"'";
      

  13.   

    java里没错误,数据库就不太认帐了.
      

  14.   

    不是吧,怎么是三单引号啊>应该是:(我认为)sql="select * from counter where date='"+time+"'";
    Oracle应该是:(time是字符串):sql="select * from counter where date=to_date('"+time+"','yyyy-MM-dd')";