2017-07-10 3 views
0

Ich habe eine SQL-Abfrage und ich muss die Anzahl der letzten 48 Stunden erhalten.Holen Sie sich Daten aus den letzten 48 Stunden - MySQL

SQL-Abfrage

SELECT count(*), created 
AS countMeta 
FROM mimesi_indexer.meta_served_clips 
GROUP BY created > DATE(NOW() - INTERVAL 48 HOUR) 

ich diese Abfrage versucht, aber es funktioniert nicht, kann mir jemand sagen, wie es zu beheben, oder wie es von Grund auf neu zu tun, bitte?

Dank

Antwort

1

Wenn created ein Feld Zeitstempel ist, und Sie möchten zählen alle Zeilen erstellt im letzten verwenden sollten 48 Stunden, Ihre Anfrage sollte so geschrieben werden:

select 
    count(*) AS countMeta 
from 
    mimesi_indexer.meta_served_clips 
where 
    created > NOW() - INTERVAL 48 HOUR 

Wenn Sie die Anzahl von jedem Haus zeigen möchten r In den letzten 48 Stunden, eine Art und Weise, ist dies:

select 
    date_format(created, '%Y/%m/%d %h') as day_hour_created, 
    count(*) 
from 
    mimesi_indexer.meta_served_clips 
where 
    created > NOW() - INTERVAL 48 HOUR 
group by 
    date_format(created, '%Y/%m/%d %h') 

die String-Funktion date_format verwenden, können wir nur die Tag und die Stunde Informationen aus dem created Feld und Gruppe durch diese Zeichenfolge extrahieren. Dann könnten Sie auch den Zustand ändern wollen

created > NOW() - INTERVAL 48 HOUR 

dazu:

created > date_format(now()- interval 48 hour, '%Y/%m/%d %h') 

die Minute und zweiten Teil zu überspringen, um die erste Stunde komplett zu machen.

+0

Es funktioniert aber aus irgendeinem Grund das Ergebnis, das ich bekomme, sind die Zählung aus den letzten 48 Stunden und die Zählung für alles andere. Gibt es eine Möglichkeit, nur die Anzahl der letzten 48 Stunden zu drucken? – GPecchio

+0

@ user8269171 diese Abfrage, im Gegensatz zu anderen, wird nur die Zählung für die letzten 48 Stunden zurückgeben – fthiella

+0

oh wahr, Entschuldigung für die Störung. Danke für die Antwort! – GPecchio

0

Sie mysql DATE_SUB() statt DATE() Funktion zu erhalten, die Aufzeichnungen von den letzten 48 Stunden

SELECT count(*), created 
AS countMeta 
FROM mimesi_indexer.meta_served_clips 
GROUP BY created > DATE_SUB(now(), INTERVAL 48 HOUR) 
+0

Es funktioniert aber aus irgendeinem Grund das Ergebnis, das ich bekomme, sind die Zählung der letzten 48 Stunden und die Zählung für alles andere. Gibt es eine Möglichkeit, nur die Anzahl der letzten 48 Stunden zu drucken? – GPecchio

Verwandte Themen