[英]JDBC and MySQL, how to persist java.util.Date to a DATETIME column?
[英]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.