Ich versuche, Ansichten im Zeitintervall zu zählen. Die folgende Anforderung funktioniert nur ohne die AND -Klausel

Wenn ich das AND s.timestamp < 2019-01-31 herausnehme, funktioniert es einwandfrei.

SELECT s.category_id, c.name, count(s.category_id) AS ViewCount 
FROM stat_product_category s 
JOIN category c ON s.category_id = c.id 
WHERE s.timestamp > 2019-01-01 AND s.timestamp < 2019-01-31
GROUP BY s.category_id 
ORDER By ViewCount Desc 
LIMIT 10
1
Sam 20 Jän. 2019 im 19:33

3 Antworten

Beste Antwort

Sie benötigen ein einfaches Anführungszeichen für den Datumswert

SELECT s.category_id, c.name, count(s.category_id) AS ViewCount 
FROM stat_product_category s 
JOIN category c ON s.category_id = c.id 
WHERE s.timestamp > '2019-01-01' AND s.timestamp <'2019-01-31'
GROUP BY s.category_id ,c.name
ORDER By ViewCount Desc 
LIMIT 10
2
Zaynul Abadin Tuhin 20 Jän. 2019 im 16:34

Das sind keine Zeitstempel - ohne Anführungszeichen haben Sie nur ein paar Ints, die Sie subtrahieren. 2019-01-01 wird als 2019-1-1 oder 2017 bewertet. 2019-01-31 wird als 2019-1-31 oder 1987 bewertet. Es gibt keine Zahl, die größer als 2017, aber kleiner als 1987 ist keine Ergebnisse. Wenn Sie diese Werte mit Anführungszeichen umgeben, werden sie zu einem Zeichenfolgenliteral, und die Datenbank kann eine implizite Konvertierung in ein Datum durchführen:

SELECT s.category_id, c.name, count(s.category_id) AS ViewCount 
FROM stat_product_category s 
JOIN category c ON s.category_id = c.id 
WHERE s.timestamp > '2019-01-01' AND s.timestamp < '2019-01-31'
-- Here ------------^----------^-------------------^----------^
GROUP BY s.category_id 
ORDER By ViewCount Desc 
LIMIT 10
2
Mureinik 20 Jän. 2019 im 16:37

Dieses Skript sieht gut aus. Sie müssen nur Qoutes um Ihre Daten setzen, damit SQL weiß, wo die Werte beginnen und enden.

SELECT s.category_id, c.name, count(s.category_id) AS ViewCount 
FROM stat_product_category s 
JOIN category c ON s.category_id = c.id 
WHERE s.timestamp > '2019-01-01' AND s.timestamp < '2019-01-31'
GROUP BY s.category_id 
ORDER By ViewCount Desc 
LIMIT 10

(getestet & funktioniert!)

Viel Glück mit dem Projekt!

0
Simon 20 Jän. 2019 im 16:40