Seite 1 von 1
Mit Abfrage nach Tag (1 - 31) eines Datumfeldes sortieren
Verfasst: Mi, 21.02.2007 20:14
von althoffc
Hallo,
ich möchte ein Datumsfeld (DATE, dd-mm-yyy) nach Monat, Tag sortieren.
Dazu greife ich mit month(datum) auf den Monat (1- 12) des Datumfeldes zu.
Ebenso funktioniert auch das Auswerten der Jahreszahl mit year(datum).
Ich habe bisher aber vergeblich eine entsprechende Abfrage für den Tag
eines Datums (1 - 31) hinbekommen.
Mit dayname(datum) erhalte ich die Namen der Wochentage, was ich aber
nicht benötige.
Wenn ich day(datum) einsetze, erhalte ich einen Syntaxfehler.
Kennt jemand eine entsprechende Funktion, mit welcher der Tag (1 - 31)
eines Datumfeldes ermittelt werden kann?
Danke und Gruß,
Carsten
Verfasst: Do, 22.02.2007 08:32
von Toxitom
Hey Carsten,
intern werden Datumswerte als fortlaufende Zahl dargestellt, und zwar beginned bei einem Stichtag (30.12.1899) als vergangene Tage. Insofern sind die Tage bereits geordnet. Daher gibt es keine "Tag"-Funktion.
Leider weiss ich nicht, was exakt du erreichen willst, üblicherweise aber sortierst du Datumswerte einfach mit DAYOFYEAR(), das liefert dir die Zahlen 1-365. In der Abfrage erzeugst du eine zusätzliche Spalte mit diesen Wert (kann auch versteckt sein) und sortierst aufsteigend - jetzt sind alle deine Datumswerte entsprechend dem Jahresablauf geordnet.
Suchst du soetwas?
Ansosnten liefert dir die Funktion DAYOFMONTH() den Tag des Monats als Zahl (1-31). Beiden Funktionen übergibst du den Datumswert.
Gruss
Thomas
Verfasst: Do, 22.02.2007 08:57
von althoffc
Hey Thomas,
danke für die schnelle Antwort. Ich denke dass hilft mir weiter.
Ich habe wohl die Funktion dayofmonth() gesucht, die mir den Tag (1-31)
eine Monats aus einem Datum ermittelt.
Ziel ist, alle Geburtstage eine Monats month(datum) zu selektieren und diese
nach dem Tag (des Monats) zu sortieren.
Dies sollte dann z.B. wie folgt möglich sein:
select name, geburtstag from tab_xxxx
where month(geburtstag) = 6
order by dayofmonth(geburtstag)
Wo kann ich solche Informationen über "SQL-Funktionen" finden?
In der Hilfe von OOo wurde z.B. mit dem Suchbegriff "month" oder "year" nichts gefunden.
Würde bei weiteren Fragen/Problemen dann erst mal eine solche Quelle durchstöbern.
Vielen Dank und Gruß,
Carsten
Verfasst: Do, 22.02.2007 13:11
von Toxitom
Hey Carsten,
Wo kann ich solche Informationen über "SQL-Funktionen" finden?
Na ja, das sind keine allgemeinen SQL Kommandos, sondern eingebaute Funktionen der jeweils verwendeten Datenbank-Engine - und daher immer verschieden.
Nutzt du die HSQLDB, dann findest du ein Benutzerhandbuch unter
http://www.hsgldb.org, zwar funktionieren (noch) nicht alle dort aufgelisteten funktionen auch in Base, aber doch fast alle
Viele Grüße
Thomas
Verfasst: Do, 22.02.2007 13:35
von althoffc
Hallo Thomas,
ja ich verwende die HSQLDB. Habe die Infos gefunden.

Danke und Gruß,
Carsten