![]() |
Datenbank: SQLite • Version: 3.10.0 • Zugriff über: Delphi -> SQL Query
Float Zeitsumme als Hh:Mm ausgeben!
Irgend wie bin ich hier am Anschlag. Denke aber das sich das leicht lösen lassen sollte. Komme aber selber nicht dahinter.
Es geht um folgendes: SELECT TotalMonthDec, TotalMonthDec as Hh:Mm FROM xxx TotalMonthDec ist ein Float der Werte mehr als 24 haben kann Also möchte ich in einer Zweite Spalte diese Zeiten im Format HH:MM darstellen Beispiel 121.75 soll zu 121:45 werten. Sicher weiss hier jemand wie ich das anstellen kann. Schon mal vielen Dank dafür. |
AW: Float Zeitsumme als Hh:Mm ausgeben!
Moin...8-)
Eine Frage die ich mir immer wieder stelle: Zitat:
Welchen Typ hat das Datenbank Feld? Zitat:
|
AW: Float Zeitsumme als Hh:Mm ausgeben!
Auch Moin,
Nun ja wollte die Zeiten welche ich aus einer Tabelle auslese die dort als Float gespeichert sind in einem Grid in zwei spaten anzeigen. Einmal als Float und in der zweiten Spalte als Hh:Mm Das liesse sich machen mit Zeiten kleiner 24 Stunden geht aber nicht wenn die Zeit darüber liegt. Dann wird in der zweiten Spalte immer mit 23:59 angezeigt. Daher suche ich einen Weg den Float Wert am besten gleich in der SQL Abfrage entsprechend umzuformatieren. Vielleicht hast Du dazu eine Vorstellung wie ich das sauber und performant hinbekomme. Danke schon mal. |
AW: Float Zeitsumme als Hh:Mm ausgeben!
Dann rechne es halt selbst aus:
FLOOR(TotalMonthDec) || ':' || (TotalMonthDec - FLOOR(TotalMonthDec)) * 60 Das ist ISO/IEC-SQL. Je nach Implementation musst du statt || (Konkatenationsoperator nach ISO/IEC) die CONCAT-Funktion verwenden oder +. |
AW: Float Zeitsumme als Hh:Mm ausgeben!
Hallo Redeemer,
Vielen Dank für deine Antwort. Ja bleibt mir wohl nichts anderes übrig. Leider unterstützt die hier verwendete SQLite Version 3.10 Floor() nicht. Gibt es etwas dafür in Version 3.10 oder kann ich mit meinen Delphi XE5 auf einen neuere SQLite Version wechseln? |
AW: Float Zeitsumme als Hh:Mm ausgeben!
Zitat:
|
AW: Float Zeitsumme als Hh:Mm ausgeben!
Danke auch eine Idee!
|
AW: Float Zeitsumme als Hh:Mm ausgeben!
Und so habe ich es nun gelöst:
SELECT TotalMonthDec, CAST(TotalMonthDec AS INT) || ':' || substr('00'|| CAST((TotalMonthDec - CAST(TotalMonthDec AS INT)) * 60 AS INT), -2, 2) as TotTime FROM Tm_TimeDayData Würde vielleicht auch noch etwas eleganter gehen. Und hier das Resultat: TotalMonthDec TotTime 2.73 2:43 2.17 2:10 23.15 23:08 27.15 27:08 |
AW: Float Zeitsumme als Hh:Mm ausgeben!
Ja genau.
Ich glaube übrigens, das Vorhandensein von Floor liegt weniger an der Version als daran, ob es mit aktivierten Mathe-Funktionen kompiliert wurde. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz