AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Zeit zwischen zwei Time Felder
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit zwischen zwei Time Felder

Ein Thema von hewy · begonnen am 6. Jan 2024 · letzter Beitrag vom 7. Jan 2024
Antwort Antwort
hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#1

Zeit zwischen zwei Time Felder

  Alt 6. Jan 2024, 15:51
Datenbank: SQLite • Version: 3.1 • Zugriff über: SQL Delphi
Hallo allerseits,

Habe in einer SQLite Tabelle zwei TIME Felder.
[InTime] TIME,
[OutTime] TIME,
Nun möchte ich in einer Abfrage die Differenz dieser zwei Zeiten im Format HH:MM anzeige.
Habe einiges ausprobiert aber bisher keine brauchbare Abfrage erstellen können.
Kann doch nicht so schwierig sein.

All das bringt nichts Brauchbares:
SELECT InTime, OutTime,
Time(OutTime - InTime) As WorkTime,
(CAST(OutTime AS INT) - CAST(InTime AS INT)) as IntDif,
CAST(OutTime AS INT) || ':' || substr('00'|| CAST((OutTime - CAST(InTime AS INT)) AS INT), -2, 2) as TotTime,
Time(JULIANDAY(OutTime) - JULIANDAY(InTime)) AS difference
FROM Tm_ShiftDetailPln

Bin da wohl zu unerfahren.
Wäre sehr Dankbar wenn mir da jemand weiterhelfen könnte.

Wielen Dank schon mal.
Heinrich
Heinrich Wyssen

Geändert von hewy ( 6. Jan 2024 um 15:54 Uhr)
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.893 Beiträge
 
Delphi 12 Athens
 
#2

AW: Zeit zwischen zwei Time Felder

  Alt 6. Jan 2024, 15:59
Hmm, aus dem Kopf: TimeDiff(time1, time2)
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zeit zwischen zwei Time Felder

  Alt 7. Jan 2024, 10:15
Hallo,

sollte das mit dem TimeDiff nicht passen mal in unit System.DateUtils nachschauen,
da gibt's jede Menge Datums und zeit bezogene Funktionen.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: Zeit zwischen zwei Time Felder

  Alt 7. Jan 2024, 10:53
Das hilft aber innerhalb des SQL nicht viel.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#5

AW: Zeit zwischen zwei Time Felder

  Alt 7. Jan 2024, 12:38
Hallo,
Danke für die Hints, Leider akzeptiert mein DB kein TimeDiff kann man dazu etwas aktivieren oder installieren?
Delphi funktionen könnten helfen müsste aber dazu die Berechnung beim speichern der Daten in ein zusätzliches neues Feld in der Datenbank durchführen.
Möchte es aber mit SQL lösen, das es nur bei einem Fall benötigt wird.
Irgendwie müsste sich das doch machen lassen.
Am besten hätte ich alle Datum und Zeit Daten und Datum von anfang an in der Db als Float gespeichert dann würden bei nachträglichen ergänzungen solche fälle gar nicht auftreten.
Ich warte mal ab vielleicht kommt doch noch was oder ich such morgen weiter.
Gruss
HW
Heinrich Wyssen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#6

AW: Zeit zwischen zwei Time Felder

  Alt 7. Jan 2024, 12:46
Leider akzeptiert mein DB kein TimeDiff
Also, zumindest in der Doku ist es beschrieben: https://www.sqlite.org/lang_datefunc.html
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#7

AW: Zeit zwischen zwei Time Felder

  Alt 7. Jan 2024, 13:16
Richtig TimeDiff steht in der Anleitung allerdings sagt meine DB 'no such function: TimeDiff' nehme mal an das es DB Version abhängig.
Mal sehen ob ich die DB Version upgraden kann.
Heinrich Wyssen
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Zeit zwischen zwei Time Felder

  Alt 7. Jan 2024, 14:19
Vielleicht versteht es das?
Delphi-Quellcode:
SELECT
 id,
 departure,
 arrival,
 FLOOR(TIMESTAMPDIFF(SECOND, departure, arrival) / 3600 / 24), ' days ',
 FLOOR(TIMESTAMPDIFF(SECOND, departure, arrival) % 3600 / 3600), ' hours ',
 FLOOR(TIMESTAMPDIFF(SECOND, departure, arrival) % 3600 % 60), ' minutes ',
 TIMESTAMPDIFF(SECOND, departure, arrival) % 60, ' seconds'
FROM travel;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#9

AW: Zeit zwischen zwei Time Felder

  Alt 7. Jan 2024, 14:52
übrigens TimeDiff gibt es erst seit Version 3.43.0
Im projekt wo ich aktuell bin habe ich SQLite Version 3.1
Denke das ist Delphi Version abhängig. In meinem Fall XE5
Heinrich Wyssen
  Mit Zitat antworten Zitat
hewy

Registriert seit: 2. Aug 2006
Ort: Arni (Region Zürich) Schweiz
81 Beiträge
 
Delphi XE5 Enterprise
 
#10

AW: Zeit zwischen zwei Time Felder

  Alt 7. Jan 2024, 15:38
Also Problem gelöst,

Nach langem Probieren und internet durchlesen habe ich folgende Lösung erstellen können:
SELECT [InTime], [OutTime],
time(((strftime('%s', OutTime) - strftime('%s', InTime))), 'unixepoch') as Duration
FROM Tm_ShiftDetailPln

Ergebnis:
InTime OutTime TimeDiff
06:00:00 10:00:00 04:00:00
20:00:00 23:50:00 03:50:00
00:00:00 06:00:00 06:00:00
13:00:00 17:35:00 04:35:00
18:00:00 20:00:00 02:00:00
10:00:00 14:00:00 04:00:00

Scheint zu Funktionieren. Allerdings sehe ich jetzt gleich das nächste Problem. Mit der Zeit ohne Datum stimmt es dann nicht wenn OutTime nach mitternacht ist.
Also nochmals über die Bücher. Das aber erst morgen auf der Arbeit.
Dennoch Danke an alle für Eure Hilfe.
Heinrich Wyssen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz