oracle db JDBC:
select current_date from dual
它返回一个java.sql.Timestamp,而不是java.sql.Date实例。
select current_timestamp from dule
它返回一个oracle.sql.TIMESTAMPTZ,而不是java.sql.Timestamp实例。
如何让它们返回JDBC java.sql。*标准类型的值?
答案 0 :(得分:1)
在Oracle中,DATE
数据类型包含年,月,日,小时,分钟和秒组件。
在Java中:
java.sql.Date
班级有年,月,日组成部分。java.sql.Timestamp
班级有年,月,日,小时,分钟和第二部分。 Oracle DATE
的正确Java数据类型是java.sql.Timestamp
而不是java.sql.Date
(您可以使用java.sql.Date
作为存储过程的返回值等,但它将截断时间组件。)
在Oracle中,CURRENT_TIMESTAMP
的数据类型为TIMESTAMP WITH TIME ZONE
。在Java中,这相当于oracle.sql.TIMESTAMPTZ
类。
答案 1 :(得分:0)
Oracle SQL返回Oracle数据类型。你可以使用trunc(current_date)去掉时间部分(不过它会影响返回类型!)。但是,要使用JDBC获取正确的数据类型,只需在https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html中使用正确的get方法即可。 getDate
方法返回java.sql.Date
,getTimestamp
方法返回java.sql.Timestamp
。