Wie verwende ich UNIX_TIMESTAMP, um die 7 Tage vor den letzten 7 Tagen abzurufen?
P粉549412038
P粉549412038 2024-01-29 08:51:42
0
1
404

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粉549412038
P粉549412038

Antworte allen(1)
P粉955063662

您可以使用:

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

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

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

SELECT 
  * 
FROM 
  users 
WHERE 
  registered_at > UNIX_TIMESTAMP(NOW() - INTERVAL 14 DAY)' 
  AND registered_at 
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage