AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zeit berechnen per SQL SUM ???
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit berechnen per SQL SUM ???

Ein Thema von spacewolf · begonnen am 2. Jun 2005 · letzter Beitrag vom 3. Jun 2005
Antwort Antwort
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#1

Zeit berechnen per SQL SUM ???

  Alt 2. Jun 2005, 19:11
Datenbank: Firebird • Version: 1.5 • Zugriff über: SQL (InterbaseKomponenten)
Moin Leude,

hab versucht per SQL eine Startzeit und Endzeit (welche in einer Tabelle gespeichert sind) mit folgendem SQL Befehl zu berechnen:

SELECT sum(ende-start) FROM worklist_qmbriefe Dabei bekomme ich nur eine Flieskommazahl zurück, dabei wäre ich aber eher an datetime interessiert

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

euer Andreas
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Zeit berechnen per SQL SUM ???

  Alt 2. Jun 2005, 20:13
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#3

Re: Zeit berechnen per SQL SUM ???

  Alt 3. Jun 2005, 11:04
njet... ne, geht nicht: "Funktion unbekannt" meldet Firebird bei DateDiff und convert...

bei

SELECT cast((ende-start) AS date) FROM zeiten meldet er:

Zitat:
Overflow occured during data type conversion.
Conversion error from string "0.000266032037037037037037"
Sollte ich etwa jetzt schon an die grenzen meines Firebirds gekommen sein ?
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
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: Zeit berechnen per SQL SUM ???

  Alt 3. Jun 2005, 11:18
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
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Zeit berechnen per SQL SUM ???

  Alt 3. Jun 2005, 11:22
Bruder Andreas:
Gesegnet sei das FireBird, auf das es stetig verbessert werde obwohl es Nichts kostet.
Zitat:
Und es sprach der Mar des Alzai (der Sohn des Par'Quin):
"Und Nehmet die Sache selbst in die Hand"
"als das die Hand von euch genommen wird."
Zitat:
Es begab sich zu einer Zeit, als das Datum selbst als Zahl geschrieben wurde als da wurde bestimmt, das ein Datum schreitet immerfort und wird nie kleiner nicht und wachset stetig.
Normalerweise wird ein Datum (Date+Time) Als Anzahl der Tage seit irgend einem 0-Datum (1.1.1900, oder so) repräsentiert. Der Nachkommaanteil ist dabei die Uhrzeit: 0.5 = 12 Uhr mittags, 0.75 = 18 Uhr abends etc.

Firebird is ja nich blöd und macht das bestimmt ähnlich.
Versuchs doch einfach mit
select trunc (1440* (ende - start)) as Minute from <MyTable> Und wenn BireFird das auch nicht kann, dann eben ohne trunc.
Mulizieren und Subtrieren sollte er schon können.

Amen.
@Stevie: Blasphemie
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Zeit berechnen per SQL SUM ???

  Alt 3. Jun 2005, 14:06
Zitat von spacewolf:
SELECT sum(ende-start) FROM worklist_qmbriefe Dabei bekomme ich nur eine Flieskommazahl zurück, dabei wäre ich aber eher an datetime interessiert
Probiere es mal so:
select cast('0:00as time) + (ende - start) as dauer from worklist_qmbriefe Grüße vom marabu
  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 04:10 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