Seite 1 von 1

QSqlQuery: SELECT Timestamp

Verfasst: 27. April 2007 13:02
von artus
Hallo,

ich möchte aus dem Timestamp der DB nur den Tag haben. Die Abfrage lautet

Code: Alles auswählen

("SELECT COUNT(Nr) FROM tabelle WHERE DAY(timestamp) = 19")
Als Ergebnis bekomme ich eine int Zahl.

Mit QSqlQuery aber bekomme ich kein Ergebnis:

Code: Alles auswählen

QSqlQuery query_Heute("SELECT COUNT(Nr) FROM tabelle WHERE DAY(timestamp) = 19");

	while (query_Heute.next()) {
	int Heute = query_Heute.value(0).toInt();
	lcdHeute->display(Heute);
	}
Das LCD enthält dann 0.
Ändere ich die Abfrage in

Code: Alles auswählen

SELECT * FROM tabelle
bekomme ich die Anzahl zurück. Ich habe bei einem Debugdurchlauf gerade noch aus den Augenwinkel sehen können, dass es hier scheinbar Probleme mit dem timestamp gibt und QT den Typ nicht erkennt. Was mich aber doch wundert, denn es kommt ja eine int Zahl zurück. Reproduzieren konnte ich die Meldung jedoch nicht.

Hat jemand eine Idee?

Verfasst: 27. April 2007 20:26
von upsala
Welchen Wert liefert eigentlich query_Heute.value(0) zurück? Und ich kann dir nicht ganz glauben, daß

Code: Alles auswählen

SELECT * FROM tabelle 
das richtige Ergebnis liefert.

Verfasst: 28. April 2007 06:42
von artus
Sorry, ich habe mich vertippt. Es soll natürlich heißen

Code: Alles auswählen

SELECT COUNT(*) FROM tabelle
query_Heute.value(0) ergibt mit Abfrage des Timestamp 0 und ohne timestamp das richtige Ergebnis.

Verfasst: 28. April 2007 09:23
von upsala
Die Abfrage

Code: Alles auswählen

SELECT COUNT(Nr) FROM tabelle WHERE DAY(timestamp) = 19
hast du selbstverständlich auf der Konsole getestet, und dort funktioniert sie?

Verfasst: 29. April 2007 07:16
von artus
Die Abfrage
Code:
SELECT COUNT(Nr) FROM tabelle WHERE DAY(timestamp) = 19
hast du selbstverständlich auf der Konsole getestet, und dort funktioniert sie?
Ja, habe ich. Nach Deiner Frage habe ich es erneut überprüft und habe nun auch den Fehler gefunden: Dämlichkeit! Ich hatte mich doch vertippt.

Sorry für die Zeitverschwendung.