❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Alter berechnen mit datediff und MySQL

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
hinti
Beiträge: 24
Registriert: Fr 15. Jan 2016, 22:35

[gelöst] Alter berechnen mit datediff und MySQL

Beitrag von hinti » Di 19. Jan 2016, 21:44

Hallo!

Base ist mit einer Mysql-Datebank verbunden. Die Datums-Funktion datediff dürfte bei Base einen anderen Syntax haben, als bei Mysql.
Im LO Handbuch steht:

Code: Alles auswählen

DATEDIFF(string, datetime1, datetime2)
und in der MySQL-Referenz:

Code: Alles auswählen

DATEDIFF(expr1,expr2)
Ich möchte gerne das Lebensalter der Vereinsmitglieder berechnen - in Jahren natürlich. Die Abfrage wie im Buch

Code: Alles auswählen

SELECT DATEDIFF('yy',"Geburtsdatum",CURDATE()) AS "Alter" FROM  "Person"
kann ich nur mit der HSQLDB von LO ausführen. Mit MySQL geht es nur ohne Datumsformat, ansonsten bekomme ich den Fehler
Incorrect paramater count in the call to native function 'DATEDIFF'

Wie bekomme ich das mit MySQL hin?
Zuletzt geändert von hinti am Do 21. Jan 2016, 13:46, insgesamt 1-mal geändert.

gogo
* LO-Experte *
Beiträge: 1081
Registriert: Sa 5. Feb 2011, 19:07

Re: Alter berechnen mit datediff und MySQL

Beitrag von gogo » Mi 20. Jan 2016, 08:02

... indem Du (wie in der Fehlermedlung angedeutet) den überflüssigen Parameter weglässt (und die anderen zwei vertauschst, sonst kriegst Du eine negative Zahl):

Code: Alles auswählen

DATEDIFF(CURDATE(), `Geburtsdatum`)
Das Alter in Jahren sieht dann so aus

Code: Alles auswählen

date_format(from_Days(DATEDIFF(CURDATE(), `Geburtsdatum`)),'%Y') AS `Alter`
Cave: DATEDIFF rechnet immer mit Date-Werten, nie mit Datetime, daher: Am 30. Geurtstag ist die Person nach obiger Berechnung noch immer 29 Jahre, die 30 kommen erst am Tag danach.
Das kann man mit der Addition von 1 (vor dem from_days()) verhindern:

Code: Alles auswählen

date_format(from_Days(DATEDIFF(CURDATE(), `Geburtsdatum`)+1) ,'%Y') AS `Alter`
g
2008 LucidL./MaverickM./WinXP LibreOffice 3.3.2 > 02/13 LinuxMint13/Xubuntu > 09/13 Debian Wheezy+LO3.5.4.2 > 01/15 Debian Jessie KDE+LO4.3.3.2/Mint17 openbox auf USB+LO4.2.8.2 > 03/16 ArchLin & LO5.1+ff > 02/18 Kubuntu

hinti
Beiträge: 24
Registriert: Fr 15. Jan 2016, 22:35

Re: Alter berechnen mit datediff und MySQL

Beitrag von hinti » Do 21. Jan 2016, 13:46

Danke so klappt's.

Lg.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten