java – 如何在h2数据库中存储时间戳
发布时间:2020-12-15 02:16:51 所属栏目:Java 来源:网络整理
导读:我有一个简单的REST Api暴露了几个实体,其中一些实体有日期字段,我希望以UNIX时间戳格式存储在H2数据库中.但是,这会导致以下异常: Caused by: org.h2.jdbc.JdbcSQLException: Cannot parse "TIMESTAMP" constant "335923000"; SQL statement:INSERT INTO pe
我有一个简单的REST Api暴露了几个实体,其中一些实体有日期字段,我希望以UNIX时间戳格式存储在H2数据库中.但是,这会导致以下异常:
Caused by: org.h2.jdbc.JdbcSQLException: Cannot parse "TIMESTAMP" constant "335923000"; SQL statement: INSERT INTO people (person_id,first_name,last_name,email,gender,location,date_birth) VALUES ('1','Peter','Smith','peter@hotmail.com','MALE','London',335923000),... 以前,它使用以下格式的时间戳:’1980-04-08′. 这是SQL表定义: CREATE TABLE people ( person_id BIGINT PRIMARY KEY auto_increment,first_name VARCHAR(32),last_name VARCHAR(32),email VARCHAR(128) UNIQUE,gender VARCHAR(8),location VARCHAR(32),date_birth TIMESTAMP,); 和我的映射对象(省略了不必要的细节): @Entity @Table(name = "people") @Getter @Setter public class Person { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "person_id") private long id; ... @Column(name = "date_birth") @JsonFormat(pattern = "YYYY-MM-dd") private Date dateOfBirth; ... } 我假设@JsonFormat注释与数据库时间戳格式没有任何关系,但我不知道如何告诉hibernate我的时间戳是UNIX格式的. 我查看了convert unix timestamp to H2 timestamp和H2文档,应该支持这种标准格式.有人能指出我,我做错了什么? 解决方法
好吧,答案已经以另一种方式完成
here
你会找到一种方法来表示没有时区的毫秒数的日期时间(这就是SQL中的“timestamp”) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |