127 votes

MySQL en sélectionnant hier ' date de s

Comment puis-je afficher et de compter les valeurs dont les dates sont d'hier? J'ai utilisé le temps() pour insérer la date dans la base de données. Exemple:

URL: google.com youtube.com google.com youtube.com test.com youtube.com
DateVisited: 1313668492 1313668540 1313668571 13154314

Je veux faire afficher comment plusieurs urls qui ont plusieurs existé dans le tableau et le nombre d'url ont été visité hier. Exemple De Résultat:

LINK       | timesExisted | timesVisitedYesterday
Google.com |       2      | 2
youtube.com|       3      | 3

J'ai déjà l'idée d'obtenir la date d'hier mais en comptant combien de fois une url existe depuis hier, et compter combien de fois une url a existé dans le tableau, je n'ai pas une idée.

Merci!

208voto

Bohemian Points 134107

La plus simple et la meilleure façon d'obtenir la date d'hier est:

subdate(current_date, 1)

Votre question pourrait être:

SELECT 
    url as LINK,
    count(*) as timesExisted,
    sum(DateVisited between UNIX_TIMESTAMP(subdate(current_date, 1)) and
        UNIX_TIMESTAMP(current_date)) as timesVisitedYesterday
FROM mytable
GROUP BY 1

Pour les curieux, la raison qu' sum(condition) vous donne le comte de lignes qui satisfont la condition, qui exigerait un lourd et verbeux case déclaration, c'est que dans mysql valeurs booléennes sont 1 authentique et 0 pour les faux, de sorte que l'addition d'une condition effectivement de compter combien de fois il est vrai. L'utilisation de ce modèle peut vaincus votre code SQL.

99voto

Romancha KC Points 457
<pre><code></code><p>où maintenant() fonction returs date et l’heure du système en Timestamp...</p><p><strong>vous pouvez utiliser :</strong></p><pre><code></code></pre></pre>

13voto

cdhowie Points 62253

Vous pouvez obtenir la date d’hier en utilisant l’expression `` . Si quelque chose comme ça pourrait fonctionner :

5voto

user1501886 Points 45

J’ai adapté une des réponses ci-dessus de cdhowie que je ne pouvais pas faire fonctionner. Cela semble fonctionner pour moi. Je soupçonne que c’est également possible de le faire avec la fonction UNIX_TIMESTAMP été utilisé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X