QSqlQuery: SELECT Timestamp

Alles rund um die Programmierung mit Qt
Antworten
artus
Beiträge: 3
Registriert: 27. April 2007 11:41

QSqlQuery: SELECT Timestamp

Beitrag 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?
Gruß

Oliver
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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.
artus
Beiträge: 3
Registriert: 27. April 2007 11:41

Beitrag 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.
Gruß

Oliver
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag 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?
artus
Beiträge: 3
Registriert: 27. April 2007 11:41

Beitrag 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.
Gruß

Oliver
Antworten