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,比较就是大于、小于、等于或者大于等于之类的!

本回答被网友采纳

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

java调oracle 时间不一致
java类中获取当前时间为Java 虚拟机的时间,一般来说是格林尼治时间,而Oracle根据安装的环境获取到你的主机的时区信息为+8,所以时间上会相差8小时,可以用下面的语句处理 String dateCN = "2011-03-16 20:22:34 GMT+08:00";SimpleDateFormat sdf_JP = new SimpleDateFormat("yyyy-MM-dd HH:mm:...

jfinal oracle date怎么比较大小
方法一 将Oracel数据库对应表中“收单时间的字段”receive_sheet_time,由原来的Date类型改为timestamp 然后,在java程序中,由 (java.util.timestamp)obj[5] 这样返回值,就会显示有“年月月时分秒“了。如 2010-03-01 14:39:17 方法二 OracleOracel数据库对应表中“收单时间的字段”receive_sheet_...

oracle中date类型能比较大小吗?
时间类型可以比较大小,但是日期格式需要转成字符串,或者字符串转成日期来比较 比如你的这个 WHERE (to_char(OP.RIQI,'yyyy-mm-dd') >= '2011-06-01')AND (to_char(OP.RIQI,'yyyy-mm-dd') < = '2011-07-26'))或者 WHERE (OP.RIQI >= to_date('2011-06-01','yyyy-mm-dd'))...

java 日期比较的问题,急!!!
sql语句怎么查吗?获取到2个日期的值!sql语句 select * from 表名 where 日期字段 between 日期1 and 日期2 有不明白的追问,good luck!

Java计算两个日期时间相差几天,几小时,几分钟等
public static String getDatePoor(Date endDate, Date nowDate) { long nd = 1000 * 24 * 60 * 60;\/\/每天毫秒数 long nh = 1000 * 60 * 60;\/\/每小时毫秒数 long nm = 1000 * 60;\/\/每分钟毫秒数 long diff = endDate.getTime() - nowDate.getTime(); \/\/ 获得两个时间的毫秒...

如何把oracle中的date转换java中的date
java.sql.Date有方法getTime()得到毫秒 java.util.Date也有构造 Date(long milliseconds)这样就转过来了 java.sql.Date d1 = ...;java.util.Date date2=new java.util.Date(d1.getTime());

java中 把timstamp类型 传给oracle中比较时间大小
YEAR, -1);String startDate = sdf.format(gc.getTime()) + " 00:00:00";String endDate = sdf.format(gc.getTime()) + " 23:59:59";Timestamp sd = Timestamp.valueOf(startDate);Timestamp ed = Timestamp.valueOf(endDate);System.out.println(sd);System.out.println(ed);...

如何在java类中向oracle数据库写入Date类型的日期
数据库中的Date类型是日期类型也就是说,根本就没有时间部分。你可以将数据库的相应字段设置为Timestamp类型。或者直接设置为varchar

oracle中date类型能比较大小吗?
可以比较,具体比较方法如下:[java] view plain copy Service:String hql = "SELECT COUNT(*) FROM Instructions ";hql =hql+where;[java] view plain copy String strStartDate=ParamUtil.getString(request,"strStartDate","");\/\/格式为:2010-05-03 String strEndDate=ParamUtil.getString(...

相似回答