MySQL Query"多久以前" + 6小时

时间:2016-02-07 20:20:55

标签: php mysql timezone

在朋友的帮助下,我得到了一个跟踪不同统计数据的网页,并将其保存在SQL数据库中。

返回的信息之一是将最新分数提交到数据库的时间。它工作正常,但是webhost处于不同的时区,我无法更改该时区。

因此,我正在考虑将查询更改为返回分数添加多久之前的查询。

当前代码:

$statement = $adapter->query("
    select name, 
        SUM(score_1) as score_1, 
        SUM(score_2) as score_2, 
        SUM(score_3) as score_3,
        (SUM(score_1)+SUM(score_2)+SUM(score_3)) as total, 
        DATE_FORMAT(MAX(creation_time), '%d %b %H:%i') as creation_time 
    from score_entry 
    WHERE DATE(creation_time) = CURDATE() 
    group by name ORDER BY total DESC");

它抓取过去一天(从今天00:00开始)存储的信息,我不确定这是否也受到错误时区的影响。

经过大量的搜索,我似乎无法找到解决我确切问题的方法。

我试图在MySQL中设置时区,但它是Namecheap的共享主机,他们不允许。

2 个答案:

答案 0 :(得分:1)

查看time zone documentation

使用SET time_zone = timezone;命令,您可以按连接设置时区。

此外,将日期存储在TIMESTAMP列中会使MySQL将时间转换为UTC,然后在您访问时将其转换回当前时区。因此,它使存储和检索时区不可知。

答案 1 :(得分:0)

使用发布的解决方案在PHP脚本中设置时区。也可以使用PHP的日期函数向您的查询发送日期时间。