目前我从oracle表获取日期作为字符串,它给出了日期和时间戳。有没有办法可以删除时间戳,只是从表中获取日期。目前在我的java代码中,Date声明为字符串,它提取日期和时间戳。谢谢
setDate(rset.getString(1));
答案 0 :(得分:4)
使用ResultSet#getDate()
将仅返回日期组件,作为java.sql.Date
(将小时,分钟,秒和毫秒设置为零)。之后您可以将Date
对象转换为字符串。
但是,我建议将日期信息存储为Date
,而不是String
。
答案 1 :(得分:3)
小心使用术语“timestamp”。 Timestamp是Oracle中的数据类型。
如果您问如何消除日期的“时间”部分。您可以在Oracle中使用TRUNC()函数。或者您不能在Java端使用字符串,而是使用日期并将格式设置为不显示时间部分。
答案 2 :(得分:0)
如果您的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() ;
转向另一个方向,查看valueOf
或from
方法。