Am Sat, 23 Jun 2012 19:10:10 +0000 schrieb Siegfried Schmidt:
> Marc Santhoff schrieb:
>
>> In welchem Format gebe ich denn mittels psql Datumswerte ein, so daß
>> ein INSERT auch funktioniert?
>
> Standardmässig in dem Format, welches du bei der Erstellung der
> Datenbank in der lc_time locale festgelegt hast.
>
> Den aktuellen Stand kannst du mit 'show datestyle;" abfragen und mit
> 'set datestyle <style>;' nach Belieben ändern.
>
> Willst du ein deutsches Datum einfügen, pack vor den Insert ein 'set
> datestyle german;'.
Hatte ich schon versucht, da ist wohl ein Syntaxfehler in meiner
Konfiguration.
> Der Abschnitt 8.5 und der gesamte Anhang B des Manuals beschäftigt sich
> mit diesem Gebiet.
Aha, okay, das wird jetzt erstmal sofort meine Lektüre.
Was ich noch gern wüßte:
Wie machen das andere Datenbanken?
MySQL ist da sehr tolerant und schluckt fast alles als Datum, scheinbar
ist das bei anderen DBen auch so?
Ich habe es hier mit einem Generator zu tun, der nur alle Identifier
quoten kann oder nicht, mehr Auswahl scheint es nicht zu geben. Und die
Datumswerte werden offenbar durch einen Parser geschickt, der alles
andere verwirft:
postgres[5971]: [5-1] ERROR: column "Belegdatum" is of type date but expression is of type character varying at character 23
postgres[5971]: [5-2] HINT: You will need to rewrite or cast the expression.
postgres[5971]: [5-3] STATEMENT: INSERT INTO
postgres[5971]: [5-4] "Journal"("Belegdatum","Buchungsdatum","Belegnummernkreis","Belegnummer","Buchungstext","Buchungsbetrag","Sollkonto","Habenkont o","Steuerschlüssel","Kostenstelle_1","Kostenstelle_2","Währung")
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)
Ich hatte schon versucht, die Datumswerte z.B. als <'01.02.03'> oder auch
<date('01.2.03')> reinzureichen, ohne die spitzen Klammern, aber das wird
alles abgetrennt.
Scheinbar kommen andere DBen aber damit zurecht, Fehlermeldungen über dieses
Verhalten finde ich jedenfalls in den Mailinglisten der Software keine.
Dankeschön,
Marc