MySQL 查询 "How long ago" + 6 小时



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

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

因此,我正在考虑将我们的查询更改为返回分数添加多长时间的查询。

当前代码:

$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共享主机,他们不允许这样做。

查看时区文档。

使用 SET time_zone = timezone; 命令,您将能够基于每个连接设置时区。

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

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

相关内容

  • 没有找到相关文章

最新更新