Heim > Fragen und Antworten > Hauptteil
Ich verwende den folgenden Code, um Ergebnisse aus einem MySQL-Feld namens registered_at zurückzugeben, damit ich die Benutzer abrufen kann, die sich in den letzten 7 Tagen auf der Website registriert haben, und es funktioniert einwandfrei:
andWhere('registered_at > UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)')
Mein Problem ist, dass ich auch die Benutzer abrufen muss, die sich in den letzten 7 Tagen auf der Website registriert haben. Die Logik besteht darin, die registrierten Benutzer der letzten 2 Wochen anzuzeigen, damit ich als Nächstes die Differenz zwischen diesen 2 Wochen als Prozentsatz ausgeben kann, zum Beispiel: 10 % mehr Benutzer diese Woche.
Ich habe etwas Ähnliches versucht:
andWhere('registered_at > UNIX_TIMESTAMP((NOW() - INTERVAL 14 DAY) - (NOW() - INTERVAL 7 DAY))')
Aber kein Erfolg.
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)'