簡體   English   中英

Java 日期字段的 ResultSet.getString() 跳過毫秒

[英]Java ResultSet.getString() for Date field skips millisecond

我正在使用 ojdbc8 版本 21.3.0.0 並正在檢索 Oracle 中的日期列作為字符串。 我期望字符串打印為 2021-01-21 00:00:00.0 但它打印為 2021-01-21 00:00:00,因此跳過了毫秒。 想知道為什么會發生這種變化? 有沒有辦法讓 ResultSet 的 getString() 仍然以毫秒返回,即 2021-01-21 00:00:00.0?

ojdbc8 12.2 以這種格式返回 2021-01-21 00:00:00.0。 隨着版本升級,可以觀察到這種變化。

在 Oracle 中, DATE是一種存儲為 7 個字節的二進制數據類型,分別表示:世紀、世紀年、月、日、小時、分鍾和秒。 這些值都是整數,所以永遠不會有任何小數秒。

如果您想要小數秒,那么您需要使用TIMESTAMP數據類型。

如果你想用小數秒顯示時間,那么你需要格式化日期並顯式打印零小數秒(你可以通過將".0"連接到你的字符串來實現)。

最新的驅動程序具有正確的行為。 DATE 類型在 Oracle 中不包括毫秒。請參閱此處的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM