Seite 1 von 1
Zeitberechnung in Formular
Verfasst: Di 6. Dez 2022, 22:01
von Bonifazius
hallo geschätzte Teilnehmer,
da ich mit den Beispielen in den Datenbanken sowie Handbuch nicht klar komme, wer kann mir helfen ?
Wie kann ich zwischen zwei Zeitfeldern in einem Formular die Differenz in einem dritten Zeitfeld in Std. berechnen / anzeigen lassen, nach Möglichkeit ohne Makro ? Für ein Beispiel besten Dank
m.f.G Bonifazius
Re: Zeitberechnung in Formular
Verfasst: Mi 7. Dez 2022, 08:41
von RobertG
Hallo Bonifazius,
mit welcher Datenbank arbeitest Du? Du meinst wirklich reine Zeit-Felder, nicht Zeitstempel? Ansonsten: Siehe hier im Forum, 2 Threads zurück. Da steht das mit DATEDIFF, nur als Tag.
Code: Alles auswählen
SELECT DATEDIFF('hour', "Zeit1", "Zeit2") AS "Differenz" FROM "Tabelle".
Das gibt Dir die Stunden an, wenn Du mit der HSQLDB arbeitest.
Genauer steht das natürlich im Handbuch, Kapitel "Abfragen", Unterkapitel "Zeitdifferenzen berechnen".
Einfacher geht das mit der internen Firebird Datenbank. Da kannst Du einfach eine Zeit von einer anderen Subtrahieren.
Im Formular bekommst Du das aber nur angezeigt, wenn Du das Formular auf dieser Abfrage beruhen lässt und der Datensatz abgespeichert wurde. Vorzugsweise wird dann in ein Tabellenkontrollfeld eingegeben, so dass die Daten nach dem Datensatzwechsel auch weiter sichtbar sind.
Gruß
Robert
Re: Zeitberechnung in Formular
Verfasst: Mi 7. Dez 2022, 12:29
von Bonifazius
Hallo Robert,
ja ich arbeite mit der HSQLDB und brauche nur die Zeitdiffernz zwischen den beiden Zeitfeldern in Std.
Besten Dank, ich habe Probleme mit den Beispieldatenbanken, bei mir funktionieren die teilweise einfach nicht so, dass das für mich eine Hilfe wäre. Ich brauche immer ein praktisches Beispiel, dann arbeite ich mich schon weiter.
Gruß Bonifazius
Re: Zeitberechnung in Formular
Verfasst: Mi 7. Dez 2022, 12:46
von Bonifazius
Hallo jetzt bin ichs nochmal,
Robert du erwähntest die Firebird Datenbank, kann man den bisherigen Inhalt der HSQLDB in eine Firebird konvertieren, hat man damit Vorteile und wie geht das, wenn überhaupt ? Besten Dank nochmal, ich werde mich revanchieren.
Gruß Bonifazius
Re: Zeitberechnung in Formular
Verfasst: Mi 7. Dez 2022, 17:07
von RobertG
Hallo Bonifazius,
zur HSQLDB habe ich Dir ja das Kapitel aus dem Handbuch aufgeschrieben.
Wenn Du wirklich viel mit Zeiten rechnen willst, dann kann das die internen Firebird-Datenbank besser. Jetzt kommt es nur darauf an, wie viel Du schon mit der anderen DB gemacht hast. Die HSQLDB ist nämlich besser in die GUI integriert. Da hakelt die Firebird-Datenbank noch manchmal etwas. So muss z.B. vor dem Schließen der Datenbank auf jeden Fall abgespeichert werden, damit die Daten auch gesichert werden. Bei der HSQLDB geschieht das automatisch. Ich regele das deshalb per Makro, wenn ich eine Firebird-Datenbank zusammenbaue.
1. Schritte zur Migration: Alte Datenbank kopieren und an einem anderen Ort ablagern
2. Extras → Optionen → LibreOffice → Erweitert → Experimentelle Funktionen aktiveren [Einschalten]
3. Die Base-Datenbank neu starten. Es erscheint der Migrationsassistent. Die Datenbank jetzt nach Firebird migrieren lassen.
4. Datenbank abspeichern - eventuelle Fehlermeldungen später mit Hilfe der Sicherung angehen. Dürften nur kommen, wenn Du Ansichten erstellt hast (in SQL), die Firebird so nicht versteht.
5. Extras → Optionen → LibreOffice → Erweitert → Experimentelle Funktionen aktiveren [Ausschalten]
Ja, wieder ausschalten. Ansonsten hast Du den Migrationsassistenten immer aktiv, wenn eine HSQLDB-Datenbank geöffnet wird. Vor allem Deine Sicherung ist dann gefährdet, falls Du einfach einmal die falsche Taste drückst.
Jetzt kannst Du mit der Firebird Datenbank weiterarbeiten und einfach die beiden Zeitfelder voneinander abziehen.
Gruß
Robert
Re: Zeitberechnung in Formular
Verfasst: Mi 7. Dez 2022, 21:59
von Bonifazius
Danke herzlich, ich werds mal ausprobieren aber mal vorläufig mit der HSQLDB weitermachen, da ich die Zeitberechnung eigentlich nur einmal brauche in meiner DB.
Gruß Bonifazius