AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Zeit als Dezimalwert ausgeben

Zeit als Dezimalwert ausgeben

Ein Thema von hewy · begonnen am 1. Mär 2022 · letzter Beitrag vom 1. Mär 2022
Antwort Antwort
hewy

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

Zeit als Dezimalwert ausgeben

  Alt 1. Mär 2022, 15:29
Datenbank: SQLite • Version: 3.10.0 • Zugriff über: Delphi
Sollte eigentlich einfach gehen, aber dennoch suche ich nun seit heute früh nach eine Lösung. Es Geht um folgendes:
In einer SQLite Datenbank habe ich ein Feld [Presence] TIME DEFAULT 0, Da steht eine Präsenz Zeit drin, daher wie lange war der Mittarbeiter heute in der Firma.
Nun sollte ich eine Abfrage “SELECT [Presence], [Presence] As PresenceDecimal from WorktimeDb” erstellen. Wobei das PresenceDecimal Feld die Zeit als dezimal wert ausgeben sollte.
Habe schon unzählige Varianten ausprobiert aber irgendwie will es einfach nicht so wie ich es brauche.
zB. “SELECT [Presence], CAST(([Presence]) AS Float) AS PresenceDecimal From WorktimeDb” Das funktioniert leider nur halbwegs den die Dezimal Zeit wird ohne Nachkomma Stellen ausgegeben. Heisst 3:36 wir zu 3!
Wäre sehr Dankbar für jegliche Hinweise wie das zu lösen ist.
Gruss und Danke HeWy
Heinrich Wyssen
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.889 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Zeit als Dezimalwert ausgeben

  Alt 1. Mär 2022, 15:53
Als was ist denn das Sqlite-Feld deklariert? Den Fehler hatte ich neulich auch gemacht, und hatte es als NUMERIC angelegt und mich dann gewundert wo die Nachkommastellen bleiben.

Mit was greifst du zu? FireDAC?

Kannst du es mit einem Drittanbieter-Tool (z.B. https://sqlitestudio.pl/) nachvollziehen dass da in der DB auch wirklich die Nachkommastellen enthalten sind?
  Mit Zitat antworten Zitat
hewy

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

AW: Zeit als Dezimalwert ausgeben

  Alt 1. Mär 2022, 16:17
Hallo Günther,
nun ja ich versuche das mit eine SQL Query wie erwähnt. Das Resultat der Abfrage würde ich dann mit FireDac in Delphi verwenden. Allerdings erhalte ich schon in SqlitExpert ohne Delphi nur die integer Werte. Zur Verfügung haben ich nur das eine Feld [Presence] vom Type Time. Nun sollte ich mit einer SELECT Abfrage einmal im Zeit Format und in einen zweiten Feld in Dezimal format die Zeit ausgeben.
Die Frage ist nun wie bringe ich die SQL Query dazu mit die Dezimal Zeit auch mit den Nachkomma stellen auszugeben?
Damit bekomme ich keine Nachkomma Stellen “SELECT [Presence], CAST(([Presence]) AS Float) AS PresenceDecimal From WorktimeDb” für [PresenceDecimal]
Die Obige Abfrage ergibt:
Presence | Value1
03:58:00.000 | 3
03:52:00.000 | 3

Möchte aber folgendes haben:
Presence | Value1
03:58:00.000 | 3.97
03:52:00.000 | 3.87
Heinrich Wyssen

Geändert von hewy ( 1. Mär 2022 um 21:09 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf