簡體   English   中英

四舍五入問題將java.util.Date存儲到MySQL日期時間

[英]Rounding issues storing java.util.Date into MySQL datetime

MySQL DB列:

PLANNING_DATE datetime

Java領域:

private java.util.Date planningDate;

休眠映射:

<property name="planningDate" column="PLANNING_DATE" type="timestamp" not-null="true"/>

問題:MySQL DB中的PLANNING_DATE並不總是與planningDate字段匹配。 有時,它會偏移1秒。 這是一個四舍五入的問題嗎?

好的,我認為這是因為在MySQL> = 5.6.4中,他們更改了DATETIME來默認截斷小數秒。 我更新了表架構以使用新的DATETIME(6)。 我將檢查這是否確實是原因。

http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

編輯:實際上,MySQL中的DATETIME> = 5.6.4(等於DATETIME(0))四舍五入為秒精度,與Oracle中的DATE截斷相反。 添加了一個自定義的Hibernate類型來執行截斷而不是舍入,從而解決了該問題。

我對MySql或Hibernate都不了解,但是這里...

A)您可能應該使用java.sql.Date。 它是java.util.Date的一個瘦子類,意味着可以與JDBC一起使用。

B) MySql文檔確實提到它們的日期時間類型不存儲秒的小數部分。 因此,也許正在四舍五入。 但是文檔中提到了截斷。

暫無
暫無

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

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