gpt4 book ai didi

jpa - 以毫秒精度将java.util.Date保存在MySQL数据库中

转载 作者:行者123 更新时间:2023-12-04 02:13:34 27 4
gpt4 key购买 nike

我想在我的MariaDB中获得毫秒精度。经过研究,我发现我需要更改columnDefinition-因此我在实体中执行了以下操作:

@NotNull
@Column(name = "createdDate", columnDefinition = "DATETIME(3) NOT NULL")
@Temporal(TemporalType.TIMESTAMP)
private TimeStamp createdDate;

@PrePersist
void onPersist() {
createdDate = new Timestamp(new Date().getTime());
}

创建列的结果SQL为:
`createdDate` DATETIME(3) NOT NULL

现在,在数据库中,该值确实具有3个小数:
2016-09-12 16:57:44.000

...但它们始终为000

我做错了什么,或者我忘记了什么?

编辑:我在没有JAVA的情况下尝试过:
CREATE TABLE `test` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`createdDate` DATETIME(3) NOT NULL,
PRIMARY KEY (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;

然后:
INSERT INTO test (createdDate)
VALUES(current_timestamp())

结果:
2016-09-13 13:57:44.000

最佳答案

我对MariaDB和日期类型有同样的问题。我已经尝试过org.joda.DateTimejava.util.time类型。服务器和客户端代码都正确支持毫秒。

问题是我正在使用MySQL Connector而不是MariaDB Connector /J JDBC驱动程序。

背景

在大多数情况下,将MariaDB与MySQL Connector配合使用效果很好,但我永远不会推荐这样做。当我搜索问题时,我正在通过Hibernate和Connector代码进行调试,并且看到许多基于服务器版本号而不是实际功能检测的功能检测。当然,版本号在MySQL和MariaDB之间有所不同。因此,有很大的可能性存在更多的兼容性问题,这些问题被悄悄地忽略了。

关于jpa - 以毫秒精度将java.util.Date保存在MySQL数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39464821/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com