2011-09-29 93 views
0

目前我从oracle表中获取日期作为给我日期以及时间戳的字符串。有没有一种方法可以删除时间戳并从表格中获取日期。目前在我的Java代码日期是声明为字符串,拉日期和timestamp.Thank你将数据从oracle表中拉到java时的时间戳

setDate(rset.getString(1)); 

回答

4

使用ResultSet#getDate()将只返回日期部分,作为java.sql.Date(具有时,分,秒和毫秒设置为零)。之后您可以将该对象变成一个字符串Date

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

3

小心使用术语“时间戳”。时间戳是Oracle中的一种数据类型。

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

+0

实际上,'TIMESTAMP'是一个标准术语,[由SQL标准定义的数据类型]之一(https://en.wikipedia.org/wiki/SQL#Data_types)。 –

0

java.time

如果您JDBC driver支持JDBC 4.2或更高版本,它可能是能够处理java.time类型的取代旧java.util.Date/.Calendar和java.sql中的类型。拨打setObject方法PreparedStatementgetObjectResultSet

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

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

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

走向另一个方向,看看valueOffrom方法。