如何在 MySQL 列中保存 DATE

Posted

技术标签:

【中文标题】如何在 MySQL 列中保存 DATE【英文标题】:How to save DATE at the MySQL column 【发布时间】:2019-05-29 07:26:53 【问题描述】:

我正在使用 Spring Boot、mysql、Hibernate 构建简单的 REST。 想使用 Hibernate 保存当前日期(自动生成),但每次我在 PostMan 中测试它时我都会得到 Null

@Entity
@Table (name="purchase")
public class Purchase 
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name; 
@Temporal(TemporalType.DATE)
@Column(name="createat")
private Date created;
CREATE TABLE `purchase`.`purchase` (
`id` INT NOT NULL             AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`createat` DATE,
PRIMARY KEY (`id`));

我需要将当前日期保存到我的 createat COLUMN

【问题讨论】:

您可以在 Java 中使用 private Date created = new Date(); 添加默认值,我不确定这是您要求的。 How can I use DB side default value while use Hibernate save?的可能重复 【参考方案1】:

使用 Hibernate,您可以使用 @CreationTimestamp 插入默认日期。

@CreationTimestamp
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "create_date")
private Date createDate;

和@UpdateTimestamp 在必要时更新值

@UpdateTimestamp
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "modify_date")
private Date modifyDate;

【讨论】:

非常感谢,@CreationTimestamp 正是我所需要的

以上是关于如何在 MySQL 列中保存 DATE的主要内容,如果未能解决你的问题,请参考以下文章

如何将约束添加到 MYSQL 中的列仅以保存已存在于同一表的另一列中的值? [复制]

SQLAlchemy如何检查值是否在两列中的值之间?

如何在mysql的json列中存储特殊字符

如何在INSERT之前获取mysql行的ID

如何在 Oracle 表的 varchar 列中的第二个和第四个字符之后插入“/”

如何在一列中获得不同的多列行