Ich versuche, Daten aus einer CSV-Datei in eine Postgresql 9.2-Datenbank mit dem Befehl psql \COPY
(nicht die SQL KOPIEREN).Importieren von .csv mit Zeitstempel Spalte (TT.MM.JJJJ hh.mm.ss) mit psql copy
Die Eingabe-CSV-Datei enthält eine Spalte mit einem Zeitstempel im Format TT.MM.JJJJ hh.mm.ss.
Ich habe den Datenbank-Datestyle mit DMY eingestellt.
set datestyle 'ISO,DMY'
Leider, wenn ich den \COPY
Befehl ausführen:
\COPY gc_test.trace(numpoint,easting,northing,altitude,numsats,pdop,timestamp_mes,duration,ttype,h_error,v_error)
FROM 'C:\data.csv' WITH DELIMITER ';' CSV HEADER ENCODING 'ISO 8859-1'
ich diesen Fehler:
ERROR: date/time field value out of range: "16.11.2012 07:10:06"
HINT: Perhaps you need a different "datestyle" setting.
CONTEXT: COPY trace, line 2, column timestamp_mes: "16.11.2012 07:10:06"
Was mit dem datestyle ist falsch?
Vielen Dank für Ihre Hilfe. Ich habe die Konfiguration manuell in datestyle = 'iso, dmy' in der Datei postgresql.conf geändert und der Import funktioniert jetzt einwandfrei. Nicht sicher, ob das das ist, was Sie vorschlagen. Ich bin jedoch auf der Suche nach einer Möglichkeit, den Server-Datestyle mit einem psql-Befehl einzustellen. – jatobat
Nun, Postgresql.conf zu modifizieren ist ein radikaler Weg, es zu tun. Sie können auch den SQL-Befehl wie in der Sitzung angegeben ausführen, bevor Sie '\ copy' ausführen. Dann wird die Einstellung nur für diese Sitzung geändert. –
Ich habe versucht, nur den 'set date style =' ISO, DMY '; 'SQL-Befehl im Editor (vor der Änderung der postgresql.conf-Datei) und dann die Ausführung der psql \ copy, aber ich habe den gleichen Fehler wie zuvor. – jatobat