[gelöst]Base und mySQL: Tage zu Datum addieren

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Daxs
Beiträge: 6
Registriert: Fr, 05.10.2007 22:38

[gelöst]Base und mySQL: Tage zu Datum addieren

Beitrag von Daxs »

Hallo,
seit ein paar Tagen versuche ich die Lösung zu meinem Problem zu finden. Leider bisher vergeblich :( , aber ich denke dass mir einer von euch auf die Sprünge helfen kann :-D .
Ich arbeite mit OOo 3.3.0 und MySQL Serverversion 5.1.41. Beide habe ich über ODBC miteinander verbunden, was auch sehr gut klappt.

Jetzt möchte ich in einer Abfrage zu den Daten einer bestimmten Tabellenspalte eine bestimmte Anzahl Tagen addieren oder subtrahieren. Mit der Abfrage
SELECT `Anfragedatum` + 14 AS `Anzahlunggeplant` bzw. SELECT `Anreisedatum` - 40 AS `Restzahlunggeplant` funktioniert es nur, wenn es nicht über einen Monat hinausgeht. Beispiel:
09.09.11 +14 ergibt 23.09.11, aber 27.09.11 + 14 ergibt 43.09.11
26.01.12 -10 ergibt 16.01.12, aber 03.12.11 -10 ergibt 93.11.12

Mit den Funktionen ADDDATE und DATE_ADD habe ich auch schon versucht zu arbeiten. Sie ergeben aber immer einen Syntaxfehler und ich habe gelesen, dass sie bei der Kombination OOo Base/MySQL nicht unterstütz werden.

Hat jemand eine Idee, wie man dieses -eigentlich ja recht einfache Problem- lösen kann?
Besten Dank im Vorraus

Frank
Zuletzt geändert von Daxs am Do, 29.09.2011 10:59, insgesamt 1-mal geändert.
aktuell LibreOffice 5.1.6.2 auf Windows 8.1 64bit
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Base und mySQL: Tage zu Datum addieren

Beitrag von komma4 »

Daxs hat geschrieben:Ich arbeite mit OOo 3.3.0 und MySQL Serverversion 5.1.41. [...]
Jetzt möchte ich in einer Abfrage zu den Daten einer bestimmten Tabellenspalte eine bestimmte Anzahl Tagen addieren oder subtrahieren.

In BASE-Abfragen wird die DATE_ADD Funktion wirklich nicht unterstützt (hier: bei JDBC-Treiber),
in Extras>SQL... und in Basic-Anweisungen funktioniert es allerdings

Also bastelst Du Dir entweder eine Abfrage in eine temp-Tabelle...

Code: Alles auswählen

insert into `t333_temp` ( SELECT `t333_movie`.`name` , DATE_ADD( `ts_updated`, INTERVAL -30 DAY   )   FROM `t333_movie` `t333_movie` ORDER BY `t333_movie`.`name` )
(für Extras>SQL...)

...oder eine Basic-Routine


Getestet mit OOo 3.2.1/openSuse 11.3, MySQL 5.1.46, mysql-connector-java-5.1.15

Hilft Dir das weiter?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Daxs
Beiträge: 6
Registriert: Fr, 05.10.2007 22:38

Re: Base und mySQL: Tage zu Datum addieren

Beitrag von Daxs »

Vielen Dank für die schnelle Antwort. Bin leider in den letzten beiden Tagen nicht dazu gekommen hier nachzusehen. Ich werde versuchen es nach dieser Methode zu machen.

Gruß
Frank
aktuell LibreOffice 5.1.6.2 auf Windows 8.1 64bit
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Base und mySQL: Tage zu Datum addieren

Beitrag von komma4 »

komma4 hat geschrieben:In BASE-Abfragen wird die DATE_ADD Funktion wirklich nicht unterstützt (hier: bei JDBC-Treiber)
Die Aussage muss ich -nach weiteren Tests- revidieren:

Aktiviert man im SQL-Editor die Option SQL-Kommando direkt ausführen
SQL-Kommando direkt ausführen
SQL-Kommando direkt ausführen
SQL-direkt ausführen.png (24.46 KiB) 2378 mal betrachtet
dann klappt es auch mit der Funktion
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Daxs
Beiträge: 6
Registriert: Fr, 05.10.2007 22:38

Re: [gelöst]Base und mySQL: Tage zu Datum addieren

Beitrag von Daxs »

Hallo komma4,
der Hinweis
Aktiviert man im SQL-Editor die Option SQL-Kommando direkt ausführen
war genau der richtige Tipp. Vielen Dank für deine Mühe. Manchmal liegen die Lösungen so nahe, aber man sieht und findet sie einfach nicht.

Also nochmal Danke und bis bald.

Frank
aktuell LibreOffice 5.1.6.2 auf Windows 8.1 64bit
Antworten