![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: SQL (InterbaseKomponenten)
Zeit berechnen per SQL SUM ???
Moin Leude,
hab versucht per SQL eine Startzeit und Endzeit (welche in einer Tabelle gespeichert sind) mit folgendem SQL Befehl zu berechnen:
SQL-Code:
Dabei bekomme ich nur eine Flieskommazahl :shock: zurück, dabei wäre ich aber eher an datetime :shock: interessiert :cyclops:
SELECT sum(ende-start) FROM worklist_qmbriefe
So weit weiß sind die Tage vor dem Komma und das andere hinter dem Komma, wie das jetzt aber funzt, das ich wieder Zeit aus Fließkommazahl mache, weiß ich nicht... Oder besser noch per SQL die DateTime zurückbekomme. Weiß "zufällig" irgendjemand bescheid ??? THANX und Gott segne euch :cheers: euer Andreas |
Re: Zeit berechnen per SQL SUM ???
versuchs mal mit "convert (datetime, floatvalue)" oder "cast (floatvalue as datetime)". Das ist MS-SQL Dialekt, schau mal in Deiner Hilfe nach. Normalerweise willst Du aber die Differenz zweier Zeitpunkt in Sekunden, Minuten oder so wissen, und nicht als Datumswert. Dazu gibt es in MSSQL die Funktion "DateDiff (uom, start, stop)" wobei uom ("unit of measurement") als "second","minute" o.ä. angegeben werden muss.
Durchsuche mal die Hilfe deines Servers. |
Re: Zeit berechnen per SQL SUM ???
njet... ne, geht nicht: "Funktion unbekannt" meldet Firebird bei DateDiff und convert...
bei
SQL-Code:
meldet er:
SELECT cast((ende-start) AS date) FROM zeiten
Zitat:
Also übigens kann Firebird nur date. Date ist sozusagen Datetime. Im neuen SQL Dialekt 3 kann Firebird date und time separt benutzen. Tue ich leider nicht verwenden... sei gesegnet und danke für Deine bemühen Delphi-Bruder Andreas :-) |
Re: Zeit berechnen per SQL SUM ???
Hallo,
ich würde an deiner Stelle die beiden Felder Start und Ende selektieren und ein zusätzliches CalculatedField hinzufügen. Im OnCalcFields-Event deines DataSets benutzt du dann am besten die Funktionen DaysBetween, MinutesBetween usw aus der Unit DateUtils. MfG Stevie |
Re: Zeit berechnen per SQL SUM ???
Bruder Andreas:
Gesegnet sei das FireBird, auf das es stetig verbessert werde obwohl es Nichts kostet. Zitat:
Zitat:
Firebird is ja nich blöd und macht das bestimmt ähnlich. Versuchs doch einfach mit
SQL-Code:
Und wenn BireFird das auch nicht kann, dann eben ohne trunc.
select trunc (1440* (ende - start)) as Minute from <MyTable>
Mulizieren und Subtrieren sollte er schon können. Amen. @Stevie: Blasphemie |
Re: Zeit berechnen per SQL SUM ???
Zitat:
SQL-Code:
Grüße vom marabu
select cast('0:00' as time) + (ende - start) as dauer from worklist_qmbriefe
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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