删除从oracle表到java的数据时删除时间戳

时间:2011-09-29 14:08:51

标签: java oracle

目前我从oracle表获取日期作为字符串,它给出了日期和时间戳。有没有办法可以删除时间戳,只是从表中获取日期。目前在我的java代码中,Date声明为字符串,它提取日期和时间戳。谢谢

setDate(rset.getString(1));

3 个答案:

答案 0 :(得分:4)

使用ResultSet#getDate()将仅返回日期组件,作为java.sql.Date(将小时,分钟,秒和毫秒设置为零)。之后您可以将Date对象转换为字符串。

但是,我建议将日期信息存储为Date,而不是String

答案 1 :(得分:3)

小心使用术语“timestamp”。 Timestamp是Oracle中的数据类型。

如果您问如何消除日期的“时间”部分。您可以在Oracle中使用TRUNC()函数。或者您不能在Java端使用字符串,而是使用日期并将格式设置为不显示时间部分。

答案 2 :(得分:0)

java.time

如果您的JDBC driver支持JDBC 4.2或更高版本,则可能能够处理取代旧的java.util.Date/.Calendar和java.sql类型的java.time类型。在setObject上调用PreparedStatement方法,在getObject上调用ResultSet

仅限日期的类型将在Java中显示为java.time.LocalDate。仅限时间类型将在Java中显示为java.time.LocalTime。时间戳(日期时间)将显示为java.time.Instant

如果您的驱动程序尚未提供此支持,请回退至使用correct Answer by Matt Ball中显示的java.sql类型。然后立即转换为java.time类型。在java.time类型中执行业务逻辑;使用java.sql类型仅用于与数据库进行数据交换。查看旧类中添加的新方法,以方便转换。

LocalDate ld = myJavaSqlDate.toLocalDate() ;
LocalTime lt = myJavaSqlTime.toLocalTime() ;
Instant instant = myJavaSqlTimestamp.toInstant() ;

转向另一个方向,查看valueOffrom方法。