MySQL中的时间数据类型主要有DATETIME
、TIMESTAMP
、DATE
和TIME
。当你说“时间数字”,可能指的是以数字形式存储的时间戳(timestamp)。时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
原因:
解决方法:
-- 查看当前时区设置
SHOW VARIABLES LIKE 'time_zone';
-- 设置时区为东八区
SET GLOBAL time_zone = '+8:00';
或者在连接数据库时设置时区:
jdbc:mysql://localhost:3306/dbname?serverTimezone=UTC
解决方法:
-- 将时间戳转换为日期格式
SELECT FROM_UNIXTIME(1633024800);
或者使用TIMESTAMP
类型:
-- 将UNIX时间戳转换为TIMESTAMP
SELECT TIMESTAMP(UNIX_TIMESTAMP());
解决方法:
-- 计算两个时间戳之间的差值(以秒为单位)
SELECT TIMESTAMPDIFF(SECOND, '2021-09-01 00:00:00', '2021-09-02 00:00:00');
如果你有更多关于MySQL时间处理的问题,或者需要具体的代码示例,请随时告诉我。
领取专属 10元无门槛券
手把手带您无忧上云