SpringBoot格式化数据库表格字段时间戳
SpringBoot格式化数据库表格字段时间戳
假设有这样一个SQL表,其中create_time
和update_time
都是datetime类型,但是一开始都是保留了6位小数,导致毫秒都显示出来了。但是如果这里只想要保留时分秒,不需要精确到毫秒级别的话,就可以格式化处理一下。
想要将其字段变成yyyy-MM-dd HH:mm:ss
格式的
这个时候在实体类的字段上加上三个注解,如下所示:
@Column(name = "update_time", columnDefinition = "DATETIME") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Column(name = "update_time", columnDefinition = "DATETIME")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
然后更新表格字段的存储格式,执行一个脚本SQL
-- 重命名列并修改格式为yyyy-MM-dd HH:mm:ss(去掉毫秒部分)
ALTER TABLE resumes
CHANGE COLUMN created_at created_time DATETIME(0),
CHANGE COLUMN updated_at update_time DATETIME(0);-- 更新现有数据,将时间格式化为yyyy-MM-dd HH:mm:ss
UPDATE resumes
SET created_time = DATE_FORMAT(created_time, '%Y-%m-%d %H:%i:%s'),update_time = DATE_FORMAT(update_time, '%Y-%m-%d %H:%i:%s');-- 创建视图,在查询时自动格式化日期时间
CREATE OR REPLACE VIEW resumes_formatted AS
SELECT id,name,email,phone_number,education,experience,skills,DATE_FORMAT(created_time, '%Y-%m-%d %H:%i:%s') AS created_time,DATE_FORMAT(update_time, '%Y-%m-%d %H:%i:%s') AS update_time
FROM resumes;
将其放到resources/db.migration路径下
然后添加Flyway库
最后就能得到这种时间戳格式的显示了。