事实上我想通过new java.util.Date()设定一个时间点,然后写hql语句查找晚于这个时间点的所有元组,但是老报错。

解决方案 »

  1.   

    date.toLocaleString()可以得到操作系统区域相符的 表示方式
      

  2.   

    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
    java.util.Date date = new java.util.Date();
    System.out.println(sdf.format(date));
    获得系统当前标准格式的时间
      

  3.   

    用chengchaog()的方法得到的是字符串,查询还是有错,是不是用字符串不能比较时间啊?下面是我的hql代码,看看有什么问题吗?
    SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
    Date date=new Date();
    String start=formatter.format(date);
    String end=formatter.format(date);"FROM EmailInfo as email where email.creatTime >= "+start+" and email.creatTime<="+end+
    " or email.receivedTime >= "+start+" and email.receivedTime<="+end;
      

  4.   

    先把你的错误信息打出来看看真的如你所说字符串不能比较,那就转成Date比
      

  5.   

    晕,你要用hql里的日期函数转换下啊 
      

  6.   

    mssql 可以自动转换,只要格式对的,oracle要手动转换
    数据库的日期最好是手动转换 ,因为日期保存在数据库里的格式有几种
    比如 小时  有0-23  有1-24  有12小时3种
      

  7.   

    hql映射的数据库是 mssql   将  "+start+" 改成 '"+start+"'
    oracle  将"+start+"  改成todate('yyyy-mm-dd hh24:mi:ss','"+start+"' )
      

  8.   

    谢谢chengchaog,这个问题在看了你在我的另一个帖子里的留言已经解决了。这里再给你30分吧,呵呵,够意思吧。