MySQL8.0使用CURRENT_TIMESTAMP查询到时间是12小时制,而不是24小时
问题描述
使用
CURRENT_TIMESTAMP
获取当前时间并设置默认值的时候,查询到时间是2024-04-22 01:46:16
,而不是2024-04-22 13:46:16
。
如果是时区问题,一般都是相差8小时。而现在系统应该是按照12小时制,而不是24小时制。
检查时区
保险一点,也可以检查一下时区:
在MySQL中获取当前时区,你可以通过查询系统变量来实现:@@global.time_zone 和 @@session.time_zone。这两个变量分别表示全局时区设置和当前会话的时区设置。
SELECT @@global.time_zone, @@session.time_zone;
-- 查询结果可能会显示为 'SYSTEM',这意味着服务器或会话时区被设置为跟随系统的时区。如果时区被显式设置为其他值,这里会显示具体的时区名称,如 '+08:00' 表示东八区。
-- 如果你需要设置MySQL的时区,可以使用如下命令(示例为设置为UTC时区):
SET GLOBAL time_zone = '+00:00'; -- 设置全局时区
SET time_zone = '+00:00'; -- 设置当前会话时区
PS:如果确实是时区问题,下面可以不用看了。
解决
步骤1:进入MySQL服务器配置文件
找到MySQL服务器的配置文件,文件一般命名为
my.cnf(linux系统)
或my.ini(Windows系统)
, 具体取决于你的操作系统和MySQL安装方式。
在Linux系统中,通常位于/etc/mysql/my.cnf或/etc/my.cnf。
在Windows系统中,通常位于C:\Program Files\MySQL\MySQL Server 8.0或者C:\ProgramData\MySQL\MySQL Server 8.0。
步骤2:找到时间格式设置
在配置文件中,找到时间格式设置的位置。
你可以使用搜索功能来查找关键字datetime_format
或者time_format
。这个设置通常在[mysqld]
部分中,你需要在这个部分寻找。
没有也不要紧,自己加上就行
步骤3:修改时间格式为24小时制
在找到时间格式设置后,你需要将时间格式修改为24小时制。没有就自己加上
datetime_format
# 时间格式设置为24小时制
datetime_format = %Y-%m-%d %H:%i:%s
步骤4:保存并重启MySQL服务器
完成步骤3后,保存配置文件并重新启动MySQL服务器,以使更改生效。在Linux系统中,你可以使用以下命令重启MySQL服务器:
# 重启mysql服务
sudo systemctl restart mysql
# 查看mysql服务状态
service mysql status
在Windows系统中,在服务管理器中找到MySQL服务并重启它。