SHOW GLOBAL VARIABLES LIKE 'time_zone'
返回:
Variable_name | Value
time_zone SYSTEM
在 Centos 7 服务器上 timedatectl
返回: Local time: Fr 2020-09-25 20:24:14 CEST
Universal time: Fr 2020-09-25 18:24:14 UTC
RTC time: n/a
Time zone: Host (CEST, +0200)
使用 DATETIME
在表中插入新行类型和默认值 current_timestamp()
此字段具有 UTC 时间 [在本例中为 2020-09-25 18:24:14 而不是 2020-09-25 20:24:14]。我的问题:
我究竟做错了什么?我知道如何设置时区,但
SYSTEM
值应该没问题,因为 Centos 7 服务器设置了正确的时区。更新
1)
回复评论,
SELECT @@GLOBAL.time_zone, @@SESSION.time_zone;
第一次返回 SYSTEM
和第二个'+00:00'。我在 Plesk 环境中的 PHP 下运行它。2)
起初,该表没有此 DATETIME 字段。当我用 PMA 添加它时,插入的日期时间 [因为该字段被定义为
NOT NULL
] 是正确的!只有当我运行 INSERT
语句然后它插入 UTC 时间。
最佳答案
感谢 Danila Vershinin ,我可以找到问题。这是他的问题SELECT @@GLOBAL.time_zone, @@SESSION.time_zone;
返回让我朝着正确的方向前进。
首先,我在 PMA 中运行了返回 SYSTEM
的命令。 .在 PMA 中插入行会生成正确的时间。只有在 CakePHP 下运行的 PHP 脚本有问题,然后我检查了 app_local.php
中的设置确实有UTC
作为 timezone
.更改 timezone
至SYSTEM
解决它。
我应该说什么,MariaDB 可以正常工作,并且由于默认的 CakePHP timezone
设置我遇到了这个问题。我现在也在问题中添加了 cakephp
标记,因为这是问题的原因。
关于cakephp - MariaDB 时区错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64069509/