SELECT dayname() auf deutsch

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

SELECT dayname() auf deutsch

Beitrag von Manfred »

Code: Alles auswählen

SELECT  DAYNAME(datum) AS wochentag
das liefert mir den Namen des Wochentags, aber in englisch. Was muß ich tun, um den in deutsch zu erhalten?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: SELECT dayname() auf deutsch

Beitrag von Marcus Herz »

Klingt nach postgres, meines wissens gibt es da nichts
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: SELECT dayname() auf deutsch

Beitrag von Werner_Bayern »

Die Funktion CDow() benutzen?
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: SELECT dayname() auf deutsch

Beitrag 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

SET datestyle TO 

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

Code: Alles auswählen

SET TIME ZONE 'Europe/Berlin';
p.s. IMHO kann man keine xBase Function mit SQL Statement nutzen.
gruss by OHR
Jimmy
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: SELECT dayname() auf deutsch

Beitrag 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. :roll:
Viele Grüße
Wolfgang
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: SELECT dayname() auf deutsch

Beitrag von AUGE_OHR »

hi,
Wolfgang Ciriack hat geschrieben: Sa, 10. Jul 2021 6:17 Deswegen schreibt Manfred hier auch unter ADS. :roll:
uuuuppps ... hatte Postgre im Thread gelesen aber nicht auf die Überschrift geachtet.
gruss by OHR
Jimmy
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: SELECT dayname() auf deutsch

Beitrag 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;
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: SELECT dayname() auf deutsch

Beitrag 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.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: SELECT dayname() auf deutsch

Beitrag von Werner_Bayern »

Äh Manfred,

was spricht gegen CDow()?
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: SELECT dayname() auf deutsch

Beitrag 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
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: SELECT dayname() auf deutsch

Beitrag 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.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: SELECT dayname() auf deutsch

Beitrag 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.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Antworten