Seite 1 von 1
SELECT dayname() auf deutsch
Verfasst: Fr, 09. Jul 2021 17:31
von Manfred
das liefert mir den Namen des Wochentags, aber in englisch. Was muß ich tun, um den in deutsch zu erhalten?
Re: SELECT dayname() auf deutsch
Verfasst: Fr, 09. Jul 2021 21:07
von Marcus Herz
Klingt nach postgres, meines wissens gibt es da nichts
Re: SELECT dayname() auf deutsch
Verfasst: Sa, 10. Jul 2021 0:13
von Werner_Bayern
Die Funktion CDow() benutzen?
Re: SELECT dayname() auf deutsch
Verfasst: Sa, 10. Jul 2021 5:40
von AUGE_OHR
hi,
ich habe keine Function DAYNAME() in Postgresql gefunden ... aber in MySQL
für Postgresql gibt es die Function to_char()
https://www.postgresql.org/docs/9.1/fun ... TIME-TABLE
Code: Alles auswählen
SELECT to_char(timestamp '2020-12-16 10:41:35', 'Day') AS "Day";
---
es gibt verschiedene "time-String" mit
Code: Alles auswählen
ISO ISO-8601-/SQL-Standard 1997-12-17 07:37:16-08
SQL traditioneller Stil 17/12/1997 07:37:16.00 PST
POSTGRES ursprünglicher Stil Wed Dec 17 07:37:16 1997 PST
German deutscher Stil 17.12.1997 07:37:16.00 PST
dann gibt es noch die Timezone
p.s. IMHO kann man keine xBase Function mit SQL Statement nutzen.
Re: SELECT dayname() auf deutsch
Verfasst: Sa, 10. Jul 2021 6:17
von Wolfgang Ciriack
Klingt nach postgres, meines wissens gibt es da nichts
ich habe keine Function DAYNAME() in Postgresql gefunden ... aber in MySQL
Deswegen schreibt Manfred hier auch unter
ADS.
Re: SELECT dayname() auf deutsch
Verfasst: Sa, 10. Jul 2021 6:31
von AUGE_OHR
hi,
Wolfgang Ciriack hat geschrieben: ↑Sa, 10. Jul 2021 6:17
Deswegen schreibt Manfred hier auch unter
ADS.
uuuuppps ... hatte Postgre im Thread gelesen aber nicht auf die Überschrift geachtet.
Re: SELECT dayname() auf deutsch
Verfasst: Mo, 12. Jul 2021 10:48
von nightcrawler
ADS kann kein deutsch - selbermachen:
Code: Alles auswählen
try drop function dayname_de; catch all end try;
create function dayname_de(ts timestamp)
returns string
begin
declare @day Integer;
@day = dayofweek(ts);
if @day=1 then return 'Sonntag';
elseif @day=2 then return 'Montag';
elseif @day=3 then return 'Dienstag';
elseif @day=4 then return 'Mittwoch';
elseif @day=5 then return 'Donnerstag';
elseif @day=6 then return 'Freitag';
elseif @day=7 then return 'Samstag';
else return '-unbekannt-';
end;
end;
select dayname_de(now()) from system.iota;
Re: SELECT dayname() auf deutsch
Verfasst: Mo, 12. Jul 2021 11:48
von Manfred
OK,
dann kann ich es auch so lassen wie es jetzt ist, ich passe das Ergebnis an. Ist ja ein DO und geht dadurch recht fix.
Schade.
Re: SELECT dayname() auf deutsch
Verfasst: Mo, 12. Jul 2021 13:22
von Werner_Bayern
Äh Manfred,
was spricht gegen CDow()?
Re: SELECT dayname() auf deutsch
Verfasst: Mo, 12. Jul 2021 13:25
von Manfred
Hi Werner,
das der ADS das nicht versteht?
Ich habe doch schon eine Funktion in der SELECT Abfrage, die liefert aber nur englisch zurück.
Jetzt durchlaufe ich das DO nachträglich nochmal und benutze da CDoW(). Da bin ich ja wieder in Xbase++ und dann klappt es.
Es gin aber darum das sofort mit einem SQL SELECT Befehl zu erschlagen
Re: SELECT dayname() auf deutsch
Verfasst: Mo, 12. Jul 2021 15:13
von Marcus Herz
Es ist traurig, dass die Entwicklung solcher DBMS in englich erfolgt, (und keiner kann sich da eine andere Sprache vorstellen) und folglich alle System Text ebenso.
Ich denk, diese Logik ist aber grundsätzlich auf dem Client besser aufgehoben. Es gibt da einfach zuviel Sprachvarianten.
Man muss froh sein, dass man das Datum verschieden formatieren kann.
Re: SELECT dayname() auf deutsch
Verfasst: Di, 13. Jul 2021 8:41
von nightcrawler
vielleicht für eine spätere Erweiterung: Der ADS kann ja auch andere Datenbanken einbinden (also: andere ADD auf demselben Server!). Ich habe für die wichtigsten Daten in deutsch(-land) Tabellen erstellt, welche ich dann über das verlinkte ADD einbinde:
Code: Alles auswählen
SELECT a.date, b.dayname FROM TabelleA
LEFT OUTER JOIN de.daynames b
ON dayofweek(a.date) = b.dayofweek;
In der Datenbank DE gibt es die Tabelle daynames mit dem Inhalt
dayofweek | dayname
1 | 'Sonntag'
2 | 'Montag'
...
Dasselbe auch für Vorwahlen, Postleitzahlen usw.