Datum bei der Ausgabe formatieren

HaWe51

Benutzer
Beiträge
24
Hallo,
habe mal wieder eine Frage.
In einer Tabelle habe ich die Spalte "mitglied_seit" mit dem Format date angelegt.
Bei der Eingabe muss man ja wohl das ISO-Format "YYYY-MM-DD" eingeben.
Wie kann ich erreichen,
1. dass zumindest in der Ausgabe mit SELECT, das deutsche Formant ("DD.MM.JJJJ" ausgegeben wird und

2. gibt es eine Möglichkeit mit der man für eine Datenbank oder ein Schema grundsätzlich auf das deutsche Format umstellen kann ohne manuell in den Config-Dateien des Servers was zu ändern?

Mit bestem Dank im Voraus
Helmut
 
Werbung:
Du kannst to_char() nutzen:

Code:
test=*# select current_date;
    date   
------------
 2019-01-21
(1 row)

test=*# select to_char(current_date,'dd.mm.yyyy');
  to_char   
------------
 21.01.2019
(1 row)

test=*#
 
Da war ich ja schon nah dran, ich hatte to_date(datumsspalte,‘dd.mm.yyyy‘); versucht und damit einen Syntaxfehler produziert. Das man nach Char umwandeln muss, darauf hätte ich eigentlich auch kommen können .

Gibt es denn zu meiner zweiten Frage auch eine Lösung, z. B. durch irgendeine Form eines set-Befehls?

Gruß Helmut
 
da fällt mir kein (einfacher) Weg dazu ein, evtl. über die Definition eines eigenen DATE-Datentypes mit einer entsprechenden Funktion für die Ausgabe.Ich halte den Aufwand da aber für beträchtlich.
 
Zu 2)

Die Darstellung eines Datums wird durch die Anwendung gesteuert die das Datum anzeigt.
Du müsstest in den Einstellungen Deines SQL-Tools suchen, ob Du das umstellen kannst.

Wenn ich das richtig im Kopf habe, verwendet psql zur Ausgabe immer das ISO Format (der Parameter DateStyle wird nur für die Umwandlung von einem String in ein Datum verwendet).
 
Schade. Dann habe ich aber noch eine Frage in Bezug auf die Config-Dateien:

Bei der Installation von ProgreSQL auf localhost wurde ja standardmäßig progres als Besitzer mit eigenem Passwort eingerichtet. Mit der Folge, dass ich auf den Progres-Ordner als normaler Benutzer meines Computers keinen Zugriff habe, weil ich ja nicht der Besitzer dieses Ordners bin. Natürlich kann ich mir als Administrator meines Computers Lese-und Schreiberechte für diesen Ordner verschaffen und damit dann auch auf die Config-Dateien zugreifen und sie ggf. ändern. Wäre dieses Vorgehen ok oder würde progres diese Änderungen ignorieren oder würde das vielleicht sogar die Config-Dateien korrumpieren?
 
Sorry für den Schreibfehler. Wenn ich Dich richtig verstehe, ist das von mir beschriebene Vorgehen dann keine gute Idee, oder?
 
Du kannst die Config-Datei auch mittels ALTER SYSTEM oder ALTER DATABASE ändern.

akretschmer hat recht: der Eigentümer des Ordners und aller Dateien sollte definitiv "postgres" bleiben.

Aber es spricht nichts dagegen, Deinem normalen Benutzer (zusätzlich) die Schreibrechte für die Konfigdateien (und nur für die!) zu geben.

Das sind Textdateien die man nicht wirklich "korrumpieren" kann. Das Schlimmste was passieren kann ist, dass Du einen Fehler machst und Postgres nicht mehr startet. Dann musst Du halt die Konfigdatei wieder editieren und den Fehler beheben. Aber die Datenbank an sich, kannst Du damit eigentlich nicht kaputt machen. Wenn Du Dich noch nicht so gut auskennst, ist es vermutlich eine gute Idee die Dateien vor jeder Änderung zu sichern.

Ich persönlich ändere Einstellungen der "postgresql.conf" niemals direkt. Ich mache alle Änderungen in einer Datei "custom.conf" (im selben Verzeichnis) welche mittels "include" von der "postgresql.conf" eingebunden wird ("custom.conf" sollte aber auch dem User "postgres" gehören)

Vergiss aber nicht, dass einige Änderungen einen Neustart von Postgres bedeuten. Viele (die meisten) können "online" geändert werden - die Änderungen sind aber erst aktiv wenn die Konfigdatei neu geladen wurden. Ich mach das immer über select pg_reload_conf();
 
Werbung:
Zurück
Oben