我的业务是查询数据库的数据,数据库有一个字段是发布信息的日期(类型是datetime)!
   在web程序中,需要查询选择天数以内的信息!可以取得这个天数!
   在实体类中,天数的字段是tianShu,我的查询sql语句是:select * from t_zfxx where [date]>?
   请问我的PreparedStatement预编译后参数如何设置?

解决方案 »

  1.   

     使用Timestamp类型吧
     preparedStatement.setTimestamp(Timestamp.valueOf(date))
      date 是你的日期,字符串型的,主要是格式问题(yyyy-MM-dd)
      这样是可以解决的。LZ试下
      

  2.   

    3楼说的字符串型的date用当前的日期和页面获得的天数怎么得到?
    你说的将字符串型的日期转成Timestamp类型就能与数据库的datetime类型相匹配吗?
      

  3.   

      是的。你说的是当前日期怎么转化成字符串吗
         SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
         preparedStatement.setTimestamp(Timestamp.valueOf(simple.formate(new Date())))
       获得页面的参数,可以用request.getParameter("name");返回的是字符串。
       
      

  4.   

    将form里日期的字段都设置成String。数据库里查询的时候,你当然会取得页面上的日期对吧,作为条件的话就TO_DATA(日期字段) 想拿出来用就 TO_CHAR("日期字段",日期格式)下
      

  5.   

    外面定义日期类型选择java.sql.Date这个类型。在数据库里面就没有问题了,这样就保持了一致
      

  6.   

    多谢各位了,在java中表示比当前日期早N天的时间怎么表示啊,好像有个什么函数?
      

  7.   

    这日期是最头痛的事了,每次都要相互转换,我遇到日期的时候,总是将数据库中的字段设置为varchar类型的,
    这样就不要考虑日期的转换了,考虑到用户可以随便乱写日期的情况,我就用个日期控件,规范用户填写正确日期。呵呵。。
      

  8.   

    Date d = new Date();
    d.setDate(d.getDate()-5);//提前五天的写法
    Timestamp t = new Timestamp(d.getTime());
    preparedStatement.setTimestamp(t)
    将t对象插入到数据库中就可以了.Timestamp这个类是sun公司专门用来处理匹配不同数据库时间类型而写的类