在数据库表设计中,经常会使用到创建时间字段和更新时间字段,我们可以为表中的字段设置相应的默认值,实现添加数据时创建时间字段的值自动为当前创建该数据的时间,更新数据时更新时间字段的值自动为当前更新该数据的时间。
这样可以减少后端代码的操作,将压力转换到数据库上。
SQL语句如下:
ALTER TABLE 表名
ADD (
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
);
根据时间段查询(Timestamp类型)-Java
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Timestamp _start = new Timestamp(simpleDateFormat.parse(start).getTime());
Timestamp _over = new Timestamp(simpleDateFormat.parse(over).getTime());
获取当前时间(Timestamp类型)-Java
new Timestamp(System.currentTimeMillis())
这里有个坑:
MySQL5.5只支持一张表有且仅有一个字段默认值为CURRENT_TIMESTAMP
MySQL5.6及以上才支持一张表的两个及以上字段支持同时默认值为CURRENT_TIMESTAMP