【发布时间】:2018-01-20 18:40:24
【问题描述】:
我有一个带有 ebeans 的 Play Framework 应用程序。为了在主系统和离线系统之间进行同步,我使用 addDate 字段来标识唯一记录。
这在开发和初始测试(使用 jdbc:h2:mem:play;MODE=MYSQL 进行开发)和使用有限数据集进行测试时非常有效。
但是在生产中,我发现在 MySQL 数据库中,并发用户不会存储毫秒数。我将字段创建为 datetime(6),但查询如下:
SELECT UNIX_TIMESTAMP(add_date) FROM `user` WHERE 1
返回:
1499722493.000000
1499772800.000000
1499777225.000000
1499790922.000000
1499875868.000000
1499954855.000000
1499977124.000000
1499981148.000000
1499986822.000000
(ps.在MySQL中选择add_date字段返回2015-12-17 16:15:50.000000,显示精度就在那里)
因此不存储毫秒。在 Java 中,我使用普通的 Date 类,所以它们在其中(在 H2 男性测试数据库中也是如此)。
protected Date addDate;
如何使用我当前的配置将毫秒存储在数据库中,而不必重写太多代码?
[编辑:]
I am using MySQL on Debian: Ver 14.14 Distrib 5.6.35
sbt.version=0.13.11
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.16")
addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "3.0.2")
mysql-connector-java % 5.1.43
【问题讨论】:
-
这有什么玩框架?
-
它是一个 Play Framework 应用程序。在 ebeans 实现和 MySql 数据库之间的某个地方不存储毫秒。因此,这似乎是一个 Play Framework 问题。我是否需要添加注释以使实现以不同方式对待它,或者以不同方式定义字段?为什么它适用于 H2 人员而不适用于 MySQL?
-
什么版本的 MySQL?
-
MySQL 版本 14.14。
-
抱歉,Ver 14.14 Distrib 5.6.35。数据库上的分数/微秒没有问题,我对此进行了测试。我需要弄清楚如何将这种精度从我的 Play 应用程序保存到数据库中。
标签: java mysql datetime playframework playframework-2.0