通过phpMyAdmin导出文件时,一些时间戳会被放回一小时。我怎么能阻止这个?我不希望时间戳被篡改。这是好奇的screenshot(见日期。)
我认为原因可能是添加到每个导出文件的SET time_zone = "+00:00";
。
这是否应该发生?这是一个已知的错误吗?
我正在跑步:
-- Server version: 5.5.37-0ubuntu0.14.04.1
-- PHP Version: 5.5.9-1ubuntu4
答案 0 :(得分:1)
时间实际上并没有被'篡改'。
MySQL通常存储TIMESTAMP
列converted to UTC time,然后使用系统和会话(客户端会话)值的混合来确定要向用户显示的内容。
您可以自行检查这两个值以运行以下查询。
SELECT @@global.time_zone, @@session.time_zone;
因此,当您的PHPMA脚本生成其转储时,它会指定会话time_zone
变量,因此当您运行它时,MySQL会将它们从该时区转换回UTC。然后,当您将其导入另一个数据库时,它仍会将它们转换回您期望的UTC值。
总结如果转储中的值SET time_zone = "+00:00";
都是“落后1小时”,那么您在通过PHPMyAdmin查询时看到的值,此只会以这种方式出现< / strong>因为通过PHPMyAdmin的连接将使其时区比UTC早一个小时。