Maison  >  Questions et réponses  >  le corps du texte

Comment utiliser UNIX_TIMESTAMP pour obtenir les 7 jours précédant les 7 derniers jours ?

J'utilise le code ci-dessous pour renvoyer les résultats d'un champ MySQL appelé registered_at afin de pouvoir récupérer les utilisateurs qui se sont inscrits sur le site au cours des 7 derniers jours et cela fonctionne bien :

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

Mon problème est que j'ai également besoin de récupérer les utilisateurs qui se sont inscrits sur le site au cours des 7 derniers jours. La logique est d'afficher les utilisateurs enregistrés au cours des 2 dernières semaines afin que je puisse ensuite afficher la différence entre ces 2 semaines sous forme de pourcentage, par exemple : 10 % d'utilisateurs en plus cette semaine.

J'ai essayé quelque chose de similaire :

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

Mais sans succès.

P粉549412038P粉549412038264 Il y a quelques jours372

répondre à tous(1)je répondrai

  • P粉955063662

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

    Vous pouvez utiliser :

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

    Cela générera un registered_at 的查询,但也会修剪过去 7 天的 registered_at qui récupère les 14 derniers jours, vous conserverez donc un intervalle de 7 à 14 jours.

    Si nous convertissons cela en une requête SQL "brute", ce serait :

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

    répondre
    0
  • Annulerrépondre