java 中 Date 如何与oracle中的时间比较?

我要在每次查询时,将当前时间与数据的deadtime字段比较,如果当前时间小于这个字段,也就是说在截至日期之前就查出来,反之就不查。
这个sql要如何写呢?

java如果是util包中的date类型应该直接就可以和oracle中的date类型比较。

如果java中日期是String类型的。比较的时候就要将oracle中的日期类型用函数括起来。比如
to_char(oracle中的日期,'yyyyy-MM-dd(这个是格式。可以继续往下取时分秒)')。这样就可以进行字符串的比较。

如果oracle中的日期不是date型。就要使用to_date(oracle中的日期,'yyyyy-MM-dd(这个是格式。可以继续往下取时分秒)') 。这样可以进行date类型日期的比较。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-03
第一步,将你java代码中的Date转换成时间,得如下结果
String now = "2012-09-03 09:19:30";//具体格式按你的要求来转换
第二步,写sql语句
String sql = "select * from TB where deadtime<to_date('"+now+"','yyyy-mm-dd hh24:mi:ss')";
然后查询就可以了
请注意,to_date函数中yyyy-mm-dd hh24:mi:ss要与你的now格式一致。追问

我是想用hql查询,用new Date与数据库中的时间比较,这个要怎么写?

追答

已经是与数据库中的时间比较了啊
你写hql,必须要把new Date转换成String,比较就是大于、小于、等于或者大于等于之类的!

本回答被网友采纳