gpt4 book ai didi

java - JDBC MySQL 读写 TIMESTAMP 自 Unix Epoch 以来的毫秒数

转载 作者:行者123 更新时间:2023-11-30 22:28:09 28 4
gpt4 key购买 nike

我通过 JDBC 访问的 MySQL 表中有一个 TIMESTAMP 列。在 Java 方面,我使用的是 JodaTime。

我想将我所有的瞬间表示为自 Unix 纪元以来的毫秒数。我只想使用整数字段,但我想使用仅支持 TIMESTAMP/DATETIME 类型的 ON UPDATE CURRENT_TIMESTAMP 语法。

JodaTime 允许我轻松地在自纪元以来的不同表示和毫秒之间进行转换,但是 it's not so simple to use milliseconds since epoch with JDBC/MYSQL .

有什么方法可以让我使用 JDBC 将 milliseconds_since_epoch 存储在 TIMESTAMP 列中,并将 TIMESTAMP 列检索为 milliseconds_since_epoch,而不必担心由于客户端或服务器更改时区而导致的值发生变化。

我宁愿不必弄乱 mysql 服务器设置或 jdbc 连接设置,但如果这是唯一的方法,我愿意这样做。

最佳答案

Is there any way I can us JDBC to store milliseconds_since_epoch in a TIMESTAMP column, and retrieve TIMESTAMP columns as milliseconds_since_epoch

对于 5.6.4 之前的 MySQL 服务器版本:

没有。 TIMESTAMP 列将丢弃小数秒(引用:here)。

如果您确实需要存储毫秒数,则必须将它们放在单独的数字列中。但是,如果您可以使用整秒的时间分辨率,那么 TIMESTAMP 列将在存储时自动将值转换为 UTC(引用:here)。

对于 MySQL 服务器版本 5.6.4 及更高版本:

是的。有关详细信息,请参阅以下 MySQL 文档主题:

Fractional Seconds in Time Values

关于java - JDBC MySQL 读写 TIMESTAMP 自 Unix Epoch 以来的毫秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34672850/

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