引言
查看数据库数据,发现表中自动生成的创建时间不正确,故先使用SELECT CURRENT_TIMESTAMP;
sql验证自动生成的时间是否是不正确的。经验证确定是自动生成的时间不正确,进而想到了对时间进行校正。
校正过程
首先查看数据库时间的时区是否是当地的。
SELECT @@global.time_zone, @@session.time_zone;
经查看确认数据库自动生成时间戳所使用的时区是system系统时区。
依赖系统时区耦合性以及不太好判断其准确时区。因此将数据库时间戳所使用的时区进行固定。
SET GLOBAL time_zone = 'Asia/Shanghai';
SET time_zone = 'Asia/Shanghai'; 只对当前会话的时间戳有影响不会对其他连接的会话产生影响。所以不使用这条sql进行更改。
拓展
SELECT NOW(); -- 显示当前日期和时间
SELECT CURDATE(); -- 显示当前日期
SELECT CURTIME(); -- 显示当前时间
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 格式化时间