Datum errechnen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

DTH
*
Beiträge: 19
Registriert: Sa, 15.09.2018 16:27

Datum errechnen

Beitrag von DTH » Sa, 15.09.2018 16:45

Hallo,

ich brauche dringend Hilfe.
Ich muss in einer Datenbank Tabelle ein künftiges Datum errechnen und in einer Abfrage und einem Bericht als Datum anzeigen.
Basis sind ein Wartungsdatum, z.B. 7.09.2018, ein Wartungsinterval, z.B. 12 Monate, und aus den beiden Daten muss das nächste Wartungsdatum ermittelt werden.
Da ich neu mit OpenOffice Base arbeite, seit ca. 2 Wochen, weiß ich nicht wo und wie und welcher Tabelle ich welche Einstellungen vornehmen muss, um an das gewünschte Datum zu kommen.
Vielleicht kann mir jemand unbürokratisch und mit leicht verständlichen Worten einige Tipps geben.
Danke.
Gruß DTH

RobertG
*******
Beiträge: 1727
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Datum errechnen

Beitrag von RobertG » Sa, 15.09.2018 18:03

Hallo DTH,

da die interne HSQLDB (Standarddatenbank unter OpenOffice und auch zur zeit noch unter LibreOffice) keine Funktion DATEADD mit dabei hast, musst Du Dir mit anderen Möglichkeiten behelfen.

Bei einem Wartungsintervall von 12 Monaten wäre das noch recht einfach zu gestalten, sofern Du bei Schaltjahren mit kleinen Fehlern leben kannst: Datum in Jahr, Monat und Tag aufteilen, zu dem Jahreswert ein Jahr hinzufügen und anschließend Datum wieder zusammenfügen und vor allem nicht vergessen, den so entstandenen 'Text' wieder in eine Datumsvariable umzuwandeln:

Code: Alles auswählen

SELECT "Datum", 
CAST(YEAR("Datum")+1||'-'||RIGHT('0'||MONTH("Datum"),2)||'-'||RIGHT('0',DAY("Datum") AS DATE) 
AS "Datum_Folgejahr"
Schon das ist natürlich für den Anfang eine Zumutung. Du musst erst einmal in den SQL-Modus umschalten und dann auch noch mit dem Code hantieren können. Da Tageswerte und Monatswerte auch einstellig sein können muss eine '0' mit den Werten verbunden werden und dann das Ergebnis dieser Verbindung auf 2 Stellen begrenzt werden.

Für genauere Einstellungen (Datum in 2 Wochen) habe ich mir bei meinen ersten Datenbanken so geholfen, dass ich in Calc eine Liste erstellt habe: Ein Feld mit laufender Nummer, ein zweites Feld mit einem Datum. Einfach runter gezogen macht Calc daraus eine Liste mit fortlaufenden Nummern und fortlaufenden Datumswerten. Die Liste habe ich gleich für mehrere Jahre erstellt (war für eine Bibliothek - 3 Jahre haben mir da erst einmal gereicht). Wenn ich dann das Datum anzeigen wollte, bei dem ein Buch, das gerade entliehen wurde, zurückgegeben werden sollte, habe ich dann über eine Abfrage in der Liste "lfdNr_Datum" nachgeschaut, welchen Wert das Ausleihdatum als "LfdNr" hat, zu der "LfdNr" dann 14 addiert (14 Tage und bei der entsprechenden Nummer das Rückgabedatum herausgelesen.

Details dazu stehen im Handbuch Base, siehe auch hier meine Signatur. Im Handbuch für LO 6.1 steht das auf S. 408f.

Gruß

Robert

DTH
*
Beiträge: 19
Registriert: Sa, 15.09.2018 16:27

Re: Datum errechnen

Beitrag von DTH » So, 16.09.2018 11:53

Hallo Robert,
vielen Dank für Deine schnelle Antwort.
Natürlich ist die Aufgabe für einen Anfänger kompliziert, aber wie heißt es so: man wächst an seinen Aufgaben.
Ich möchte zu meinem Thema noch eine Frage an Dich stellen:
in meiner Tabelle habe ich die Felder "Letzte Wartung" und "Wartungsintervall". Wartungsintervall kann 12 oder 5 oder irgendeine andere Zahl an Monaten sein. Ich habe das Feld "Letzte Wartung" als Integer definiert und erhalte quasi das Datum umgerechnet als Zahl. Dann addiere ich in einer Abfrage bei z.B. 7 Monaten als Intervall 7 * 30 Tage auf das Feld "letzte Wartung" und erhalte in einem neuen Feld "Nächste Wartung" die erhöhte Zahl. Auch das Feld "Nächste Wartung" habe ich mit Integer definiert.
Was und wo muss ich jetzt etwas tun , um das Feld "Nächste Wartung" wieder als Datum ( Feld Typ: Date ) ausgeben zu können ?
Wenn ich mir das Ergebnis der Abfrage anschaue, dann habe ich in beiden Feldern "Letzte Wartung" und "Nächste Wartung" nur diese "blöde" Zahl stehen. Ich brauche aber in beiden Feldern das richtige Datum.
Gruß
Dieter

F3K Total
********
Beiträge: 3255
Registriert: Mo, 28.02.2011 17:49

Re: Datum errechnen

Beitrag von F3K Total » So, 16.09.2018 14:22

Hi,
wenn du mit Integern und 30 Tagen pro Monat rechnest, kein Thema, einfach das Kontrollfeld für die nächste Wartung ZUM Datumsfeld machen und entsprechend formatieren, siehe Beispiel anbei.

Gruß R
Dateianhänge
Datum.odb
(14.13 KiB) 28-mal heruntergeladen

DTH
*
Beiträge: 19
Registriert: Sa, 15.09.2018 16:27

Re: Datum errechnen

Beitrag von DTH » So, 16.09.2018 16:09

Hallo,

danke für die Unterstützung. Ich kann sie sehr gut gebrauchen.
Ich habe aber immer noch ein Problem. Wenn ich das Formular aus der Tabelle erstelle, wird mir für das letzte Datum und das nächste Datum immer nur die "blöde" Zahl angezeigt.
Wie und wo muss ich im Formular beide Datum Felder so formatieren, dass ich ein Datum angezeigt bekomme.
Du musst verstehen, ich bin erst seit ca. 2 Wochen mit OpenOffice Base am Arbeiten.
Ich habe in dem Zusammenhang noch eine Frage: gibt es eine Möglichkeit, sich über das nächste Datum Meldungen / Benachrichtigungen anzeigen zu lassen. So ähnlich, wie man es mit einem Smartphone Kalender durch die Eingabe von Terminen erreichen kann ?
Gruss
DTH

RobertG
*******
Beiträge: 1727
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Datum errechnen

Beitrag von RobertG » So, 16.09.2018 17:50

Hallo DTH,

vermutlich suchst Du noch den richtigen Feldtyp: Du musst aus dem reinen Zahlenfeld ein formatierbares Feld machen. Dann kannst Du dem Feld die Formatierung für ein Datum zuweisen.

Für das nächste Datum: Ich würde eine Abfrage erstellen, die nur die Datumswerte ab dem aktuellen Datum anzeigt. Die Datumswerte sollen dann natürlich aufsteigend sortiert sein. So etwas stellst Du dann z.B. in einem Unterformular dar.

Gruß

Robert

DTH
*
Beiträge: 19
Registriert: Sa, 15.09.2018 16:27

Re: Datum errechnen

Beitrag von DTH » So, 16.09.2018 22:50

Hallo Robert,

danke für Deinen Tipp.
Ich werde es einmal versuchen.
Viele Grüße
DTH

Antworten