【发布时间】:2012-01-16 01:39:21
【问题描述】:
我有一个关于 mysql 时区的奇怪问题。
在我的网站配置文件中,我有这行设置时区:
mysql_query("SET SESSION time_zone = '$offset';"); // Offset is properly calculated, no worries about that
有趣的是,如果我像这样在此之后添加另一行:
$q = mysql_query("SELECT NOW() as now");
$row = mysql_fetch_array($row);
echo $row["now"];
执行该代码后,时间显示正确。
但是,在其他一些查询中,我在具有名为 date 的列的表中插入行,该列默认为 CURRENT_TIMESTAMP。
这样插入行:
INSERT INTO `sessions` (`user_id`) VALUES `1`
(会话表有一个date 列,默认为 CURRENT_TIMESTAMP)
但是插入到数据库中的值仍然指向服务器的时区:((
任何想法如何解决这个问题?
【问题讨论】:
-
当你说插入数据库的值指向服务器时区时,你如何检查?还通过您使用
SET SESSION time_zone技巧的连接? -
你在运行
INSERT之前关闭连接吗? -
我在 phpMyAdmin 上检查它,直到脚本执行结束才关闭连接
-
在显示 phpMyAdmin 时是否可能是转换回来的任何线索?