我用Access,其中的Date字段的属性为 短日期型,rq1和rq2为程序中的两个String型的变量如果写成:
ltSet myResults; myResults=stmt_2.executeQuery("select sum(gz) from 2006 where Date >= '"+rq1+"' and Date <= '"+rq2+"'");
报错:与数据库的数据类型不匹配如果写成:
ltSet myResults; myResults=stmt_2.executeQuery("select sum(gz) from 2006 where Date >= "+rq1+" and Date <= "+rq2);
那么我得到的结果为 1,不过正常情况下不会是1.困惑ing.......

解决方案 »

  1.   

    忘了说一下:rq1,rq2都附值成****-*-*
      

  2.   

    rq1和2加上引号sql认为是char型,和你说的短日期型不匹配
    你把rq1和2打出来看看,然后select Date from 2006 看一下格式是否一致
      

  3.   

    我的附值:rq1="2006-2-1"  rq2="2006-3-15"  都是String,  那我的sql语句该怎么改,谢谢大哥
      

  4.   

    Java中的String类型和SQL中的数据类型没有关系
    SQL语句中会认为加了引号的在数据库中的数据类型是字符串
      

  5.   

    try:
    stmt_2.executeQuery("select sum(gz) from 2006 where [Date] >= #"+rq1+"# and Date <= #"+rq2+"#");
      

  6.   

    我从这里看不出你语句有什么错
    你这样试试,把sql改成select gz from 2006 where Date >= "+rq1+" and Date <= "+rq2
    先把sum去掉,或者干脆select  *,然后把结果打出来看看,看是不是你想要的数据