Runden in Base Abfrage

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Benutzeravatar
teakay
***
Beiträge: 82
Registriert: Mi, 28.09.2005 08:47
Wohnort: Somewhere over the Rainbow.

Runden in Base Abfrage

Beitrag von teakay »

Ist es möglich einen Wert gezielt runden zulassen, damit meine ich das selbst Zahlen wie 1,9 auf 1 oder 15,6 auf 15 abgerundet werden?

Mit ROUND ist es leider nur möglich eine standardisierte Rundung durchzuführen, so das 1,9 auf 2 und 15,6 auf 16 gerundet wird.

Ich bin durch einen Posting von eBayer auf folgende Codezeile gestoßen.

Code: Alles auswählen

DATEDIFF( 'dd', "Geburtstag", CURRENT_DATE ) / 365
Um die Schaltjahre zu berücksichtigen habe ich sie ein wenig geändert und als Divisor 365,25 angegeben.

Code: Alles auswählen

DATEDIFF( 'dd', "Geburtstag", CURRENT_DATE ) / 365.25
Da ich dann aber Werte mit Nachkomma stelle bekomme würde ich diese gerne Abrunden auf eine Ganzzahl.

Ich hoffe ihr könnt mir weiterhelfen.
Meine Sys-Config ist ... zuviel um sie hier aufzulisten. Firmen Computer, Private Computer und etliche VMs
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Runden in Base Abfrage

Beitrag von hol.sten »

teakay hat geschrieben:Ich hoffe ihr könnt mir weiterhelfen.
Da du nicht schreibst, welche Datenbank du in OOo Base verwendest, nehme ich an, dass es die in OOo integrierte HSQLDB ist. Eine Doku der nummerischen Funktionen von HSQLDB findest du hier: http://hsqldb.org/doc/2.0/guide/builtin ... meric-sect. Ich schätze mal, dass dir FLOOR zum gewünschten Ergebnis verhilft (ausprobiert habe ich es aber nicht):
HyperSQL User Guide - Chapter 10. Built In Functions hat geschrieben:FLOOR ( <num value expr> )

Returns the largest integer that is less than or equal to the argument. If the argument is exact numeric then the result is exact numeric with a scale of 0. If the argument is approximate numeric, then the result is of DOUBLE type. (JDBC and Foundation)
Benutzeravatar
teakay
***
Beiträge: 82
Registriert: Mi, 28.09.2005 08:47
Wohnort: Somewhere over the Rainbow.

Re: Runden in Base Abfrage

Beitrag von teakay »

Ich ziehe meine Frag hiermit zurück.

Ich habe herausgefunden, wie ich es für mich am einfachsten mache.

Code: Alles auswählen

CEILING( DATEDIFF( 'dd', "Geburtstag", CURRENT_DATE ) / 365.25 ) - 1
Aber vielleicht kennt noch jemand eine einfachere Lösung
Meine Sys-Config ist ... zuviel um sie hier aufzulisten. Firmen Computer, Private Computer und etliche VMs
Benutzeravatar
teakay
***
Beiträge: 82
Registriert: Mi, 28.09.2005 08:47
Wohnort: Somewhere over the Rainbow.

Re: Runden in Base Abfrage

Beitrag von teakay »

sorry Holsten,

habe eben erst gesehen das du schon geantwortet hattest, aber trotzdem ist dein Link extrem hilfreich für mich, so habe ich mal eine Komplette Aufstellung der Funktionen die HSQLDB bietet. Ich werde sie mir mal durchschauen und gucken ob ich einige meiner anderen Datenbanken etwas Funktionaler gestalten kann.
Meine Sys-Config ist ... zuviel um sie hier aufzulisten. Firmen Computer, Private Computer und etliche VMs
Antworten