【发布时间】:2014-01-22 09:46:18
【问题描述】:
我在 php 中这样做是为了将 lastlogin 存储在 mysql 日期时间列中
date('Y-m-d h:i:s') //which then gave > '2014-01-04 08:00:56'
然后保存
当我需要计算在线超过20分钟的用户时,我在mysql中做了这个
SELECT * FROM `elc_users` WHERE TIMESTAMPDIFF( MINUTE , lastlogin, NOW( ) ) <20
它不起作用,当我在mysql中跟踪时,Now() 给了这个> 2014-01-04 20:00:56
现在这不会让我获得 20 分钟的登录用户。
我该如何解决这个问题?
编辑
我在 phpMyAdmin 中手动插入了一条记录,以确保其时区问题出现在 timestamp 列中,默认值为 current_timestamp,它给出了 2014-01-05 06:48:21。我在 phpMyAdmin 中运行了这个查询
SELECT created, NOW( ) `elc_users`
这给了2014-01-05 18:53:53
现在我还执行下面的代码来检查全局和会话时区,我得到了 phpMyAdmin
mysql> SELECT @@global.time_zone, @@session.time_zone;
然后给SYSTEM | SYSTEM
【问题讨论】:
-
可能你的mysql服务器有不同的时区。
-
这是在我的开发机器上,好的,我怎样才能避免这个时区差异
-
@FilipGórny 请查看编辑