我现在有个问题是在数据库里时间格式为2006-5-29 下午 03:46:32我现在要通过JSP查询数据库的某个时间段的情况,有没有什么好的方法让数据库时间格式转换成可以比较的时间格式。

解决方案 »

  1.   

    用数据库的函数 比如 convert(varchar(50),getdate(),120) ,好像是把,记得不是很清楚了
      

  2.   

    首先把数据库中的格式转化成String型,好像用toString()这个方法,然后比较
      

  3.   

    这样不行的,因为转换只能作为查询结果,不能作为条件,放在WHERE 里
      

  4.   

    首先把数据提取出来,把它转化成long型, 
    java.util.Date datetime ="2006-5-29 下午 03:46:32";
    long dt = datetime.getTime(); //毫秒数
    String ret_ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")).format(dt);
    把ret_ft写会到数据库中,用另外的字段(datetime)保存,就可以比较了。 
      

  5.   

    // 组装sql语句
    StringBuffer hql = new StringBuffer( "select {i.*} from EmergencyList {i} where (1=1)");
    // 日期格式化
    SimpleDateFormat formats = new SimpleDateFormat("yyyy-MM-dd");
    // 拼装日期查询语句 当天之前30天
    hql.append(" and i.opTime>=convert(datetime,'").append(
    formats.format(new Date())).append("')-30").append(" and i.opTime<=convert(datetime,'").append(
    formats.format(new Date())).append("')+1").append("");
      

  6.   

    不同的数据库有不同的日期转换函数可以利用,一楼给出的是MS SQLSERVER中的用法。另外,楼主三楼的结论也太武断了吧。
      

  7.   

    数据库一定会有时间的比较和加减的函数.把JSP中的时间放到里面就行了.
      

  8.   

    PreparedStatement pstmt = con.prepareStatement("SELECT * FROM a WHERE t BETWEEN ? AND ?");
    pstmt.setDate(1, new Date(2000, 5, 5));
    pstmt.setDate(2, new Date(2005, 5, 5));