2017-06-08 2 views
0

Ich möchte in mysql zwei Spalten zählen. Eine der Spalten ist eine Zeichenfolge, aber eine andere ist ein Datum wie 06/08/2017 und wenn ich meine Abfrage mache, bekomme ich 0 Ergebnisse.Wie kann ich in mysql zwei Spalten zählen?

SELECT count(*) FROM `castigos` WHERE inicio_normal=05/06/2017 AND cod_emplazamiento=1

Ich habe Einträge dieser Daten aber sein Lassen Sie mich nicht alles zeigen. Vielleicht ist die Art der Daten im Datum falsch?

Was soll ich tun? enter image description here

Antwort

0

Fügen Sie das Datum Feld zu Ihrer Auswahl und Gruppe von ihm. Andernfalls erkennt mysql extensions nicht, dass Sie nach dem Datum gruppieren möchten und aggregiert alle Ergebnisse in 1 Spalte. Und da Sie 0 count bekommen, darf die where-Klausel nicht funktionieren.

Ihr Datumsformat scheint falsch formatiert zu sein. normalerweise JJJJ/MM/TT-Format (Standardformat); oder ein Format angeben SELECT STR_TO_DATE('17/09/2010','%d/%m/%Y');

MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. The supported range is '1000-01-01' to '9999-12-31'.

die unten verwendet das implizite Casting und Standard-Datumsformat das Zeichenfolge Datum auf ein gültiges Datum zu konvertieren verwenden.

SELECT inicio_normal, count(*) 
FROM `castigos` 
WHERE inicio_normal='2017/05/06' 
    AND cod_emplazamiento=1 
GROUP BY inicio_normal 

Sonst tut es Mathe und vergleicht dieses Datum mit der für das Datum gespeicherten Zahl.

Verstehende Daten sollten in einem Datumsdatentyp gespeichert werden, und wenn Sie Daten abfragen, übergeben Sie eine Zeichenfolge, die in einen Datumsdatentyp umgewandelt wird, zum Vergleich. Sie müssen also das Standardformat verwenden oder die Zeichenfolge in ein Datum umwandeln, damit die Datenbank-Engine Ihr Format in ein Datum konvertieren kann.

0

Try this:

SELECT count(*) FROM `castigos` WHERE inicio_normal="05/06/2017" AND cod_emplazamiento=1 GROUP BY inicio_normal 
+0

Müssen mit der Tatsache umgehen, dass mySQL nur 1 Zeile hier zurückgibt, da es keine Gruppe gibt. und die erwarteten Ergebnisse zeigen Zählungen für jedes Datum in Daten. – xQbert

+0

Ja, du schreibst ... bearbeite meine Antwort. –

0

WHERE inicio_normal = 05/06/2017

Wenn Sie 3 von 6 teilen sich dann bis zum Jahr 2017 Sie in der Tat einen sehr kleinen Wert. OTOH Wenn Sie reformat this as a date (z. B. 20170605, wenn Sie uns ein europäisches formatiertes Datum geben - TT/MM/JJJJ), dann wird Ihre Abfrage die Zeilen finden, die Sie uns gezeigt haben.

Verwandte Themen