Runden in Base Abfrage

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Runden in Base Abfrage

Re: Runden in Base Abfrage

von teakay » So, 28.02.2010 16:48

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.

Re: Runden in Base Abfrage

von teakay » So, 28.02.2010 16:14

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

Re: Runden in Base Abfrage

von hol.sten » So, 28.02.2010 16:13

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)

Runden in Base Abfrage

von teakay » So, 28.02.2010 15:44

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.

Nach oben