Ich habe eine Abfrage, die mir den Monatsnamen auf Basis eines Datum-Wertes der zugrundeliegenden Tabelle ausgibt. Hierfür verwende ich folgende Anweisung im SQL-String:
... MONTHNAME("Datum") AS "Monat" ...
Allerdings werden mit dieser Funktion die Monatsnamen in Englisch ausgegeben. Gibt es eine Möglichkeit, die Monatsnamen von einem Datums-Wert in Deutsch zu bekommen?
Monatsnamen in deutsch
Moderator: Moderatoren
-
- **
- Beiträge: 39
- Registriert: Mi, 14.03.2007 13:39
Monatsnamen in deutsch
Herbie
Re: Monatsnamen in deutsch
Hallo SchneiderH,
m.W. kann man so etwas normalerweise mit dem Befehl SET DATABASE COLLATION = "GERMAN" einstellen. Allerdings hatte ich damit keinen Erfolg. Hat das evtl. schon einmal jemand auf diesem Weg in der HSQLDB hinbekommen???
Solange könntest Du mit CASE WHEN die englischen durch die deutschen Bezeichnungen ersetzen:
Gruß Barlee
m.W. kann man so etwas normalerweise mit dem Befehl SET DATABASE COLLATION = "GERMAN" einstellen. Allerdings hatte ich damit keinen Erfolg. Hat das evtl. schon einmal jemand auf diesem Weg in der HSQLDB hinbekommen???
Solange könntest Du mit CASE WHEN die englischen durch die deutschen Bezeichnungen ersetzen:
Code: Alles auswählen
case
when MONTHNAME( "Datum" )='December' Then 'Dezember'
when MONTHNAME( "Datum" )='...' Then '...'
when MONTHNAME( "Datum" )='...' Then '...'
...
...
...
END as Monat_DT
-
- **
- Beiträge: 39
- Registriert: Mi, 14.03.2007 13:39
Re: Monatsnamen in deutsch
Hallo Barlee,
danke für den Tipp. Allerdings funktioniert mit der HSQLDB von Base die CASE WHEN Anweisung nicht. Erfolg habe ich nur mit der Anweisung CASEWHEN(Bedingung,Wert1,Wert2). Mit dieser Anweisung bekommt man eine ganz schöne Schachtelung. Bei den eingebauten Funktionen fehlt irgend wie eine Format-Funktion.
Für's erste werde ich wohl auf die deutschen Monatsnamen verzichten. Ist eh nur Schönheit für die Ausgabe und beeinträchtigt die Funktionalität nicht.
danke für den Tipp. Allerdings funktioniert mit der HSQLDB von Base die CASE WHEN Anweisung nicht. Erfolg habe ich nur mit der Anweisung CASEWHEN(Bedingung,Wert1,Wert2). Mit dieser Anweisung bekommt man eine ganz schöne Schachtelung. Bei den eingebauten Funktionen fehlt irgend wie eine Format-Funktion.
Für's erste werde ich wohl auf die deutschen Monatsnamen verzichten. Ist eh nur Schönheit für die Ausgabe und beeinträchtigt die Funktionalität nicht.
Herbie
Re: Monatsnamen in deutsch
Hallo SchneiderH,
CASE WHEN funktioniert in der HSQLDB. Du musst unter 'Bearbeiten' nur "SQL Kommando direkt ausführen" auswählen.
Hatte ich vergessen zu schreiben.
Gruß Barlee
CASE WHEN funktioniert in der HSQLDB. Du musst unter 'Bearbeiten' nur "SQL Kommando direkt ausführen" auswählen.
Hatte ich vergessen zu schreiben.
Gruß Barlee
-
- **
- Beiträge: 39
- Registriert: Mi, 14.03.2007 13:39
Re: Monatsnamen in deutsch
Hallo Barlee,
danke für den Hinweis. Nun ist mir dieses Symbol in der Symbolleiste auch klar geworden. Ich habe die CASE WHEN Anweisung noch etwas abgeändert, da es aus Performance-Gründen sicher besser ist, auf Zahlen als auf ASCCII-Text zu prüfen. Hier die leicht modifizierte Form:
Der ELSE-Zweig ist nur aus Vollständigkeitsgründen vorhanden und sollte nie durchlaufen werden.
Ich könnte mir vorstellen, dass derartige Funktionalitäten für viele Base-Anfänger (wie mich) interessant sind. Gibt es hierfür eine Sammlung (z.B. in OO-Wicki)?
danke für den Hinweis. Nun ist mir dieses Symbol in der Symbolleiste auch klar geworden. Ich habe die CASE WHEN Anweisung noch etwas abgeändert, da es aus Performance-Gründen sicher besser ist, auf Zahlen als auf ASCCII-Text zu prüfen. Hier die leicht modifizierte Form:
Code: Alles auswählen
CASE
WHEN MONTH("Datum") = 1 THEN 'Januar'
WHEN MONTH("Datum") = 2 THEN 'Februar'
WHEN MONTH("Datum") = 3 THEN 'März'
WHEN MONTH("Datum") = 4 THEN 'April'
WHEN MONTH("Datum") = 5 THEN 'Mai'
WHEN MONTH("Datum") = 6 THEN 'Juni'
WHEN MONTH("Datum") = 7 THEN 'Juli'
WHEN MONTH("Datum") = 8 THEN 'August'
WHEN MONTH("Datum") = 9 THEN 'September'
WHEN MONTH("Datum") = 10 THEN 'Oktober'
WHEN MONTH("Datum") = 11 THEN 'November'
WHEN MONTH("Datum") = 12 THEN 'Dezember'
ELSE 'falscher Monatswert'
END AS "DatumDT"
Ich könnte mir vorstellen, dass derartige Funktionalitäten für viele Base-Anfänger (wie mich) interessant sind. Gibt es hierfür eine Sammlung (z.B. in OO-Wicki)?
Herbie