SQL Problem mit SQLite

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

SQL Problem mit SQLite

Beitrag von roli » 15.09.2008 11:12:03

Hi,

ich bin dabei mittels SQLite eine DB aufzubauen in der u.a. Zeiten gespeichert werden. Mein Problem ist, das ich es nicht schaffe eine Querry zu schreiben, die mir die korrekte Differenz zwischen zwei Zeiten berechnet.

Code: Alles auswählen

sqlite> select * from zeit;
id|aufgabe|projekt|taetigkeit|datum|anfang|ende|pause_min|bemerkung
1|dummy|dummy|dummy|12.09.2008|8:00|11:30|30|2 dummy eintrag
sqlite> select ende - anfang from zeit where projekt='dummy';
3
sqlite>
Wenn mich meine Rechenkuenste nicht ganz im Stich lassen, wuerde ich 3 als erste Naeherung durchgehen lassen, als Ergebnis waere mir aber ein 3:30 lieber.
Also habe ich noch folgendes versucht:

Code: Alles auswählen

sqlite> select time(ende - anfang) from zeit where projekt='dummy';
12:00:00
Netter Versuch ...

Code: Alles auswählen

sqlite> select time(ende) - time(anfang) from zeit where projekt='dummy';

Mhh, eine leere Zeile ist auch nicht wirklich das was ich mir vorstelle.
Hat jemand einen Tip fuer mich? Geht das ueberhaupt?
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: SQL Problem mit SQLite

Beitrag von roli » 30.09.2008 13:21:33

Push
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
ckoepp
Beiträge: 1409
Registriert: 11.06.2005 20:11:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nähe Heidelberg

Re: SQL Problem mit SQLite

Beitrag von ckoepp » 30.09.2008 13:44:07

Schau doch mal in der SQLlight-Doku, da sollten die Datums- und Uhrzeitfunktionen doch beschrieben sein. Also bei Oracle geht das über spezielle Funktionen. Da sollte auch eine für die Differenz zwischen zwei Zeitstempeln drinne sein.
"Es gibt kein Problem, das man nicht mit einem doppelten Scotch lösen könnte!"
Ernest Hemingway

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: SQL Problem mit SQLite

Beitrag von roli » 30.09.2008 13:49:17

Hi,

in der Doku bzw. bei der Suchmaschine meines Vertrauens habe ich schon gesucht. Der letzte Stand ist folgender:

Code: Alles auswählen

sqlite> select datum, ende, anfang, round(strftime("%s", ende) - strftime("%s", anfang))/3600 as differenz from zeit where taetigkeit='dummy';
datum       ende        anfang      differenz
----------  ----------  ----------  ----------
2008-09-15  9:00        7:30
2008-09-15  18:00       17:15       0.75
2008-09-16  8:45        7:30
2008-09-16  18:15       17:30       0.75
2008-09-17  8:30        7:30
2008-09-17  17:45       17:00       0.75
2008-09-18  8:15        7:30
2008-09-18  16:00       15:15       0.75
2008-09-19  08:30       08:00       0.5
2008-09-19  17:30       17:00       0.5
Wenn ich das "/3600" weglasse habe ich die Differenz in Sekunden. Wie ich das allerdings in ein Format HH:MM(:SS) bringe habe ich noch nicht gefunden.
Was ich auch nicht wirklich verstehe ist, das wie hier zu sehen ist u.a. für den 15.09 die Differenz nicht berechnet wird. Eine Fehlermeldung erscheint allerdings auch nicht ...
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: SQL Problem mit SQLite

Beitrag von roli » 12.10.2008 17:59:04

Hi,

hat denn nicht doch noch jemand eine Idee fuer mein Problem?
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
blueflidge
Beiträge: 1414
Registriert: 31.01.2005 10:16:49
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: bei Bonn

Re: SQL Problem mit SQLite

Beitrag von blueflidge » 12.10.2008 18:30:21

Was ich mir vorstellen könnte, warum bei z.B.

Code: Alles auswählen

2008-09-15  9:00        7:30
keine Differenz berechnet wird/werden kann:
Die Anzahl der Zeichen stimmt nicht. Setz doch mal eine 0 vor die 9 und die 7

Das Format HH:MM:SS ist mit strftime %H:%M:%S
Beste Grüße
Tamara
The Debian Women Project

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: SQL Problem mit SQLite

Beitrag von roli » 12.10.2008 18:56:50

Ja, ja, die fuehrenden Nullen ...
Wird gechecked, aber nicht mehr heute. Sobal ich was habe melde ich mich wieder.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: SQL Problem mit SQLite

Beitrag von roli » 20.10.2008 10:49:00

Hi,

die fehlenden fuehrenden Nullen waren's wirklich. Jetzt wo ich die ergaenzt habe, sind auch die Berechnungen ok. => Danke Salnet

Hat jemand eine Idee wie ich sicherstellen kann, das die Zeiten im richtigen Format, also mit fuehrenden Nullen vor Morgens 10 Uhr, eingegeben werden? Ich gehe mal davon aus, das ich das vielleicht mittels Trigger anstellen koennte. Wie auch immer, noch habe ich auch selber nicht danach gesucht, da ich im Moment die Zeit noch nicht habe, werde ich aber auch noch machen.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Antworten