首頁  >  問答  >  主體

如何使用 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 天前381

全部回覆(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
  • 取消回覆