【发布时间】:2015-11-06 05:54:24
【问题描述】:
我正在尝试以毫秒精度在 MySQL 数据库中存储一些时间信息。我要存储的格式是 2015-08-13 10:56:24.570 这样。
问题是,我必须创建具有长度属性的表列(3 或 6,取决于小数部分)。我用 Java Spring Framework 编写的应用程序会自动创建 mysql 表,如果它之前没有创建的话。但我无法设置日期字段的长度属性。
"@Column 注释有长度参数,但它只与字符串字段相当。" Spring Jpa 的文档说。
另一个有趣的部分是我不能使用@Temporal 注释。我的 IDE 给出一个错误“注释@Temporal 不允许用于此位置”。我想知道为什么我也给出了这个错误。
任何帮助对我来说都会很棒。
编辑:我的用于创建 mysql 表的 Java 代码
@Entity
@Table(name = "dbTable")
public class Report
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "myDate", nullable = false, length = 6)
private java.util.Date date;
// Getters Setters etc.
}
【问题讨论】:
-
您使用的那一列是什么类型的?
-
并发布实体...
-
我试过“日期,日期时间,时间戳”。只要我不添加长度属性,它就不会保存小数部分(毫秒)。 @AmitBhati
-
您是否使用 java.sql 包的 TimeStamp,因为它的默认格式确实考虑了毫秒精度。
-
问题不是生成毫秒精度格式的时间信息,问题是存储它们。
标签: java mysql spring spring-mvc jpa