将日期插入 MySQL

Inserting dates into MySQL

在进行 JUnit 测试时,我必须将值插入数据库。为此,我有一个文件 (import.sql),其中包含用于各种测试的各种插入内容。它完美地期待日期。我将如何设置日期格式以便 MySQL 能够将它们作为日期导入。

java实体

import java.util.Date;

@Entity
@Table(name = "TEST")
public class Test {

    @Column(name = "START")
    @Temporal(TemporalType.DATE)
    private Date startDate;

    @Column(name = "END"
    @Temporal(TemporalType.DATE)
    private Date endDate;

    // getter & setter
}    

来自 import.sql

的片段
INSERT INTO TEST (START, END) VALUES ('2015-07-20 22:00:00.000', '2015-07-20 23:30:00.000')
INSERT INTO TEST (START, END) VALUES ('2015-08-18 21:00:00.000', '2015-08-18 22:30:00.000')

在这种情况下 2015-08-18 21:00:00.000,但这不起作用。它会导致错误提示格式不正确。

正在从 import.sql

加载
<property name="javax.persistence.sql-load-script-source"
        value="import.sql" />

日期是如何格式化的?

要匹配输入值 2015-08-18 21:00:00.000START 字段和 END 字段类型应为 DATETIME(3).

只需使用“2015-07-20 22:00:00”,如果您不以任何方式使用它们,则从末尾去掉秒数。在v5.6.4中加入了小数秒的支持,所以如果你有更早的版本可能会有兼容性问题。