Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Monate berechnen zwischen zwei datums (https://www.delphipraxis.net/45108-monate-berechnen-zwischen-zwei-datums.html)

peter12 30. Apr 2005 12:51

Re: Monate berechnen zwischen zwei datums
 
Entschuldige habe Fehler gefunden
SQL-Code:
create PROCEDURE RI_ALT (
    JAHR SMALLINT,
    MONAT SMALLINT)
AS
DECLARE VARIABLE R INTEGER;
DECLARE VARIABLE JAHR1 SMALLINT;
DECLARE VARIABLE MONAT1 SMALLINT;
DECLARE VARIABLE T INTEGER;
begin
  for
  select nr,extract(year from geb_datum),
  extract(month from geb_datum) from rinder
  where id_nr < 20000
   into :t,:jahr1,:monat1
  do begin

   r = (((jahr-jahr1)-1)*12)+12-monat1+monat;
   update rinder set alter_ = :r where nr = :t;
   end
  suspend;
end
Danke an Malo und Phoenix

peter

[edit=Sharky]SQL-Tags gesetzt. Mfg, Sharky[/edit]

malo 30. Apr 2005 13:03

Re: Monate berechnen zwischen zwei datums
 
Eine Bitte noch:

Verwende, um Delphi Quellcode anzuzeigen, bitte die -Tags. Danke :)

Hansa 30. Apr 2005 13:14

Re: Monate berechnen zwischen zwei datums
 
Zitat:

Zitat von malo
..um Delphi Quellcode anzuzeigen, bitte die -Tags. Danke :)

Da hat er Recht. Aber es gibt sogar SQL-Tags. Wäre hier schon besser als Delphi-Tags. :lol:

marabu 30. Apr 2005 17:11

Re: Monate berechnen zwischen zwei datums
 
Wahrscheinlich sind es Perlen vor die Rinder geworfen, aber mit der abgebildeten SP-Rechenvorschrift werden die Rinder gelegentlich einen Monat zu früh geschlachtet. Nicht das mich das besonders stören würde, wohl eher den Leiter des Wirtschaftsbetriebes.

Wegen der Kurzlebigkeit "moderner" Rinder habe ich den Norm-Monat zu 365.25 / 12 Tagen festgelegt.

Nehmen wir als Testfall 2004-02-29 als AktuellesDatum und 2005-04-01 als GeburtsDatum. Das Monatsalter errechnet sich dann nach der Formel mAge = AlterInTagen / NormMonat zu 13,0 Monaten. Die SP berechnet mit der Formel 12 * (AktuellesJahr - GeburtsJahr) - GeburtsMonat + AktuellerMonat ein Alter von 14 Monaten. Peng - das Rind ist tot.

Nachdenkliche Grüße vom marabu

PS: Bin mir nicht so sicher, ob ich sowas überhaupt in einer Stored Procedure machen würde.
PPS: Bin mir fast sicher, dass ich das Alter nicht in der Tabelle speichern würde.
PPPS: Wahrscheinlich guckt wieder kein Schwein hin...

Robert_G 30. Apr 2005 17:48

Re: Monate berechnen zwischen zwei datums
 
Zitat:

Zitat von marabu
PS: Bin mir nicht so sicher, ob ich sowas überhaupt in einer Stored Procedure machen würde.

Wo sonst? :gruebel:
Es sollte sicherlich NICHT im Client laufen. Einen BL Tier wird Peter wohl nicht haben. (Nehme ich jetzt einfach anhand des erkennbaren Kenntisstandes aus dem Bauch raus an. ;) )
Bleibt also nur eine SP bzw. UDF (In FB kann man ja keine Funktionen schreiben... )
Zitat:

Zitat von marabu
PPS: Bin mir fast sicher, dass ich das Alter nicht in der Tabelle speichern würde.

Genau! Einen berechneten Wert speichern widersprecht allem was als Normalform oder wenigstens als halbwegs konsistent durchgehen könnte. ;)
Zitat:

Zitat von marabu
PPPS: Wahrscheinlich guckt wieder kein Schwein hin...

Wie immer... :roll:

p.s.
Irgendwie mag ich deine mitdenkende Art. Was man auch in GlkIrgendwas' Thread sehen konnte. :)

marabu 30. Apr 2005 18:04

Re: Monate berechnen zwischen zwei datums
 
Zitat:

Zitat von Robert_G
Wo sonst? :gruebel:

Ich würde es im SELECT Statement machen.

Zitat:

Zitat von Robert_G
Irgendwie mag ich deine mitdenkende Art.

Dann trau ich mich mal: Hör auf mit der Verunstaltung seines Namens, sonst sag ich Jeffrey Bescheid

Zitat:

Zitat von Robert_G
Was man auch in GlkIrgendwas' Thread sehen konnte. :)

Kenn ich nicht - postet da jemand in meinem Namen?

Robert_G 30. Apr 2005 18:08

Re: Monate berechnen zwischen zwei datums
 
Zitat:

Zitat von marabu
Zitat:

Zitat von Robert_G
Wo sonst? :gruebel:

Ich würde es im SELECT Statement machen.

Das schon, aber der code sollte zentral liegen und notfalls getaucht werden können.

Zitat:

Zitat von marabu
Dann trau ich mich mal: Hör auf mit der Verunstaltung seines Namens, sonst sag ich Jeffrey Bescheid

:duck: Schon passiert...
Zitat:

Zitat von marabu
Zitat:

Zitat von Robert_G
Was man auch in GlkIrgendwas' Thread sehen konnte. :)

Kenn ich nicht - postet da jemand in meinem Namen?

Ich meinte den Tread ;)

marabu 30. Apr 2005 18:20

Re: Monate berechnen zwischen zwei datums
 
Zitat:

Zitat von Robert_G
Zitat:

Zitat von marabu
Zitat:

Zitat von Robert_G
Wo sonst? :gruebel:

Ich würde es im SELECT Statement machen.

Zitat:

Zitat von Robert_G
Das schon, aber der code sollte zentral liegen und notfalls getaucht werden können.

Hast Recht - wer weiß, wie ich die Monate morgen berechne.

[not exactly off topic]Mein SQL-Code steht aber auch nicht im Programm-Quelltext![/not exactly off topic]

Zitat:

Zitat von marabu
Zitat:

Zitat von Robert_G
Was man auch in GlkIrgendwas' Thread sehen konnte. :)

Kenn ich nicht - postet da jemand in meinem Namen?

Ich meinte den Tread ;)

Oh Gott - ich hatte wohl einen Knoten im Schnabel. Na ja, werde mal so alt wie ich bin - dann passiert dir sowas auch noch.

marabu

Robert_G 30. Apr 2005 18:27

Re: Monate berechnen zwischen zwei datums
 
Zitat:

Zitat von marabu
Oh Gott - ich hatte wohl einen Knoten im Schnabel. Na ja, werde mal so alt wie ich bin - dann passiert dir sowas auch noch.

Lass mal... Dafür tauche ich meine SQL Statements. :mrgreen: *platsch*

peter12 30. Apr 2005 19:07

Re: Monate berechnen zwischen zwei datums
 
Gebe ihnen Recht. Es muß auch der Tag einbezogen werden.
Sie würden es in eine SELECT Statement machen?

Bitte um etwas Nachsicht für meine Fragen .
Bin blutiger Anfänger und programmiere nur für den Privatgebrauch oder Freunden (Freeware ).

Ich glaube das es in SP gut aufgehoben ist .
Da das Monat nur einmal im Tag berechnet werden muß.
Und somit bei den ganzen Auswertungen und Listen nicht hundert mal berechnet werden muß.

Lasse mich aber gerne eines besseren belehren.

Kann mir den code in einer SELECT Anweisung nicht vorstellen.

Bitte prügelt mich nicht für meine Unwissenheit .
Ich versuche zu lernen.

was meint Ihr unter

Quellcode-Tags


peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr.
Seite 3 von 4     123 4      

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