Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Berechnung von Anfang der Monats / Ende des Monats (https://www.delphipraxis.net/120821-berechnung-von-anfang-der-monats-ende-des-monats.html)

HolgerCW 17. Sep 2008 09:35

Datenbank: ORACLE • Version: 10 • Zugriff über: BDE

Berechnung von Anfang der Monats / Ende des Monats
 
Hallo zusammen,

ich fülle in einem Trigger auf der ORACLE - Datenbank eine Datumsvariable.

Jetzt möchte ich in dem Trigger zu dem Datum einmal den Anfang des Monats und einmal das Ende des Monats bestimmen. Soll heissen:

17.09.2008 -> Anfang: 01.09.2008 Ende: 30.09.2008

Wie mache ich das ?

Delphi-Quellcode:
DECLARE
 my_naechste_uw DATE;
 my_naechster_alarm DATE;
 my_alarm varchar2(100);

BEGIN
 
 ...

 If my_alarm = 'Anfang des Monats' THEN
  my_naechster_alarm := my_naechste_uw - ???;
 END IF;

END;
/
Gruss

Holger

mkinzler 17. Sep 2008 09:37

Re: Berechnung von Anfang der Monats / Ende des Monats
 
Schau dir mal die Unit DateUtils an

HolgerCW 17. Sep 2008 09:39

Re: Berechnung von Anfang der Monats / Ende des Monats
 
In Delphi könnte ich das ...

... nur weiss ich nicht wie ich das in einem Trigger auf der ORACLE-Datenbank umsetze ?

DeddyH 17. Sep 2008 09:42

Re: Berechnung von Anfang der Monats / Ende des Monats
 
Der erste Tag des Monats ist ja immer der 1., zum letzten kannst Du die Oracle-Funktion LAST_DAY benutzen.

GroHae 17. Sep 2008 09:45

Re: Berechnung von Anfang der Monats / Ende des Monats
 
Ich bin mir nicht sicher ob ich dich verstanden habe, aber:

Datum kannst du mit :
Delphi-Quellcode:
var Year, Month, Day: word;
begin
  DecodeDate(Date, Year, Month, Day);
  .....
end;
zerlegen


Letzte Tage des Monats etwa so:
Delphi-Quellcode:
  result := IncMonth(StrToDate('01.' + IntToStr(iMonat) + '.' + IntToStr(iJahr)),1) - 1;
Erste Tag mit
Delphi-Quellcode:
  result := EncodeDate(Year, Month, Day);
Day = 01

DeddyH 17. Sep 2008 09:49

Re: Berechnung von Anfang der Monats / Ende des Monats
 
Öhm, wenn ich das richtig verstanden habe, geht es nicht um Delphi, sondern um PL/SQL.

HolgerCW 17. Sep 2008 10:00

Re: Berechnung von Anfang der Monats / Ende des Monats
 
Richtig,

es geht um Oracle. Das mit dem LAST_DAY hat schon super geklappt.

Wie kann ich denn in ORACLE das Datum zerpflücken und dann den Tag auf "01" setzen ?

Gruss

Holger

DeddyH 17. Sep 2008 10:05

Re: Berechnung von Anfang der Monats / Ende des Monats
 
Das müsste mit TRUNC gehen.

HolgerCW 17. Sep 2008 10:10

Re: Berechnung von Anfang der Monats / Ende des Monats
 
Bin da auf dem Holzweg. Gib mir mal einen Anstoss ...

So gehts nicht:

Delphi-Quellcode:
my_naechster_alarm := TRUNC(my_naechste_uw, '01-MM-YYYY');

DeddyH 17. Sep 2008 10:12

Re: Berechnung von Anfang der Monats / Ende des Monats
 
SQL-Code:
my_naechster_alarm := TRUNC(my_naechste_uw,'MONTH');
Ungetestet.

[edit] beim C&P zuviel dringelassen [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr.
Seite 1 von 2  1 2      

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