使用 Hibernate 在 MySQL 时间戳列中存储毫秒

Posted

技术标签:

【中文标题】使用 Hibernate 在 MySQL 时间戳列中存储毫秒【英文标题】:Storing milliseconds in MySQL timestamp column using Hibernate 【发布时间】:2016-04-22 16:36:16 【问题描述】:

我正在尝试使用 Hibernate 在 mysql时间戳列中存储带有毫秒的 java Date,但毫秒始终存储为 .000

hibernate中列的定义如下:

@Type(type="timestamp")``
private Timestamp timestamp;

在 DB 中,该列被声明为 TIMESTAMP(3)

我尝试了不同的组合,包括Date,但都没有帮助。 我使用 MySQL 5.6.25、Connector/J 版本 5.1.37、Hibernate 4.0.1。

我已经研究了一段时间,但仍然找不到任何适合我的解决方案。

任何帮助将不胜感激。

【问题讨论】:

我也有同样的问题,你解决了吗? 【参考方案1】:

您是否尝试过使用DATETIME(3)TIMESTAMP(4)?我相信这两个都会给你毫秒。如果您试图获得交互发生的毫秒时间,例如行更新,您可以使用ON UPDATE DATETIME(3)

【讨论】:

以上是关于使用 Hibernate 在 MySQL 时间戳列中存储毫秒的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 时间戳列的默认值设置未正确使用

如何将 MySql 时间戳列更新为 PHP 上的当前时间戳?

时间戳列上的 MySQL 索引不用于大日期范围

PhpMyAdmin 表导出忽略时间戳列

查询更新更新列表中未提及的时间戳列

休眠标准组结果按日期从时间戳