首页  >  问答  >  正文

如何使用 UNIX_TIMESTAMP 获取最近 7 天之前的 7 天?

我使用下面的代码从名为 registered_at 的 mySQL 字段返回结果,这样我就可以获得过去 7 天在网站上注册的用户,并且工作正常:

andWhere('registered_at > UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)')

我的问题是,我还需要获取过去 7 天前 7 天在网站上注册的用户。逻辑是显示过去 2 周的注册用户,以便接下来我可以以百分比形式输出这 2 周之间的差异,例如:本周用户增加 10%。

我尝试过类似的方法:

andWhere('registered_at > UNIX_TIMESTAMP((NOW() - INTERVAL 14 DAY) - (NOW() - INTERVAL 7 DAY))')

但没有成功。

P粉549412038P粉549412038264 天前376

全部回复(1)我来回复

  • P粉955063662

    P粉9550636622024-01-30 00:54:09

    您可以使用:

    andWhere('registered_at > UNIX_TIMESTAMP(NOW() - INTERVAL 14 DAY)')
    andWhere('registered_at < UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)')

    这将生成获取过去 14 天的 registered_at 的查询,但也会修剪过去 7 天的 registered_at,因此您将保持 7-14 天的间隔。

    如果我们将其转换为“原始”SQL 查询,它将是:

    SELECT 
      * 
    FROM 
      users 
    WHERE 
      registered_at > UNIX_TIMESTAMP(NOW() - INTERVAL 14 DAY)' 
      AND registered_at < UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)'

    回复
    0
  • 取消回复