SQLite3 - Völliges Blackout

Don_2020

Lt. Commander
Registriert
Aug. 2019
Beiträge
2.013
Möchte mit sqlite meine Stunden in eine Datenbank erfassen. Möchte SQLitestudio einsetzen (Single User).

id, tag, beginn, ende, pause, arbeitszeit
id fortlaufend, primärykey
tag DD.MM.YYYY
beginn HH:MM
ende HH:MM
pause: HH:MM
arbeitszeit soll berechnet werden. arbeitszeit = ende-beginn-pause; Format HH:MM
Sqlite3 kennt keine Datentypen DATE und TIME.

Wie sollen die Tabellenspalten in sqlite angelegt und wo die arbeitszeit berechnet werden?
Steht zur Zeit völlig neben mir.
 
Die einfachste Variante zeitliche Daten zu speichern, wäre wahrscheinlich auf numerische Werte zu wechseln (Timestamps oder Angaben in Sekunden) und die Formatierung für die Darstellung außerhalb der DB zu erledigen. Ansonsten gibt es noch ein paar Umwege über die Date and Time Functions.
 
  • Gefällt mir
Reaktionen: tollertyp
Wäre eine Tabellenkalkulation für so etwas nicht praktischer?
Und die kann vielleicht ja sogar die SQLite-Datenbank als Quelle heranziehen?
 
  • Gefällt mir
Reaktionen: JP-M
Tabellenkalkuation verändern sich immer die Einstellungen der Zellen. Da kommen manchmal komische Werte raus. Deshalb will ich weg von von Excel & Co.

Eine Datenbank soll es richten. SQLite3 soll recht einfach sein. Leider fehlen mir doch einige Grundlagen.
Meine Problemfelder sind:
  1. Anlegen der Datenbank
    Bin doch etwas überrascht, das eine Datenbank keine Datums- und Zeitwerte nativ unterstützt.e
  2. Wo/Wie wir die Zeitdifferenz berechnet?
    Habe mal vor Jahren etwas mit MS Access gemacht. Das ist aber ewig her. Außerdem soll das ganz auch unter Linux laufen.
 
Bin jetzt kein SQLite-Experte, aber wenn das keine nativen DateTimes hat, dann würde ich ebenfalls über numerische Werte gehen, speziell würde ich die Unix Timestamps nutzen. Dann braucht es nichtmal eine extra Tag-Spalte :)

Und da das alles Sekunden sind, kann man auch einfach die Zeitdifferenz ausrechnen. Einfach Ende - Anfang.
 
  • Gefällt mir
Reaktionen: JP-M
Nun, SQLite hat nicht als Ziel direkte Konkurrenz zu den großen Datenbank(servern) und ihren Funktionsumfängen zu sein. Die enthaltenen Basisdatentypen selbst reichen aus, um alles zu machen, was andere auch liefern - allerdings eben Vieles nicht als direkt mitgelieferte Datentypen oder Funktionen. Am Ende werden Datumswerte auch in anderen Systemen im Hintergrund oftmals rein numerisch abgebildet, teilweise mit Zusatzinformationen (Zeitzonen etc.).

Berechnen müsstest du die Differenzen entweder mit den verfügbaren Funktionen von SQLite, selbst definierten Funktionen oder einer passenden Applikationsschicht - so wie SQLite in den meisten Fällen auch verwendet wird. Die Aufgabe einer Datenbank, vor allem die von SQLite, ist das reine Speichern von Daten, garniert mit mehr oder weniger vielen / komfortablen Funktionen zur Abfrage und teilweise "Verarbeitung" eben dieser.

SQLite selbst, wie auch Tools die rein auf der technischen Ebene arbeiten wie SQLite Studio, werden dir nicht abnehmen, deine gewünschte Geschäftslogik (mir fält gerade kein anderes Wort ein :x ) zu implementieren. In diesem Fall das Berechnen und Auswerten von Arbeitszeiten.

Wenn du keine Vorkenntnisse in Sachen Datenbanken (Datentypen), Programmierung etc. hast, wird auch eine SQLite Datenbank "komische Werte" liefern. Vieles, was Excel / Calc und andere Tools in Bezug auf Operationen mit Datumswerten liefern, müsstest du selbst bauen oder passende SQL-Abfragen erstellen. Definitiv ein gutes Projekt um in die ganze Thematik einzusteigen, aber es werden mehr Schritte notwendig sein, als nur Daten in eine SQLite Datenbank einzutragen.
 
  • Gefällt mir
Reaktionen: tollertyp
Zurück
Oben