Importieren von .csv mit der Zeitstempelspalte (dd.mm.yyyy hh.mm.ss) mit psql \ copy

8

Ich versuche, Daten aus einer CSV-Datei in eine postgresql 9.2-Datenbank mit dem psql \COPY -Befehl (nicht die SQL-COPY) zu importieren.

Die Eingabe-CSV-Datei enthält eine Spalte mit einem Zeitstempel im Format TT.MM.JJJJ hh.mm.ss.

Ich habe den Datenbankdatestyle mit DMY eingestellt.

%Vor%

Leider, wenn ich den Befehl \COPY ausführen:

%Vor%

Ich bekomme diesen Fehler:

  

FEHLER: Datum / Uhrzeit Feldwert außerhalb des gültigen Bereichs: "16.11.2012 07:10:06"

     

TIPP: Vielleicht brauchen Sie eine andere "date style" -Einstellung.

     

KONTEXT: COPY-Kurve, Zeile 2, Spalte timestamp_mes: "16.11.2012 07:10:06"

Was stimmt nicht mit dem Datumsstil?

    
jatobat 26.12.2012, 15:14
quelle

3 Antworten

7

Haben Sie versucht, die datestyle Einstellung von Server ?

%Vor%

Sie verwenden den psql-Meta-Befehl \copy , was bedeutet, dass die Eingabedatei lokal für den Client ist. Aber es ist immer noch der Server, der die Eingabe zu passenden Datentypen zwingen muss.

Ganz allgemein, im Gegensatz zum psql-Meta-Befehl \copy , der COPY auf dem Server aufruft und eng damit verwandt ist. Ich zitiere das Handbuch zu \set :

  

Hinweis: Dieser Befehl hat nichts mit dem SQL-Befehl SET zu tun.

    
Erwin Brandstetter 26.12.2012, 15:28
quelle
2

Ich fand es schwierig, 'SET date style' in derselben Sitzung anzuwenden, wenn ich den Befehl psql anwendete. Das Ändern des Datumsstils auf der gesamten Datenbank / dem gesamten Server (nur für den Import) kann auch Nebenwirkungen auf andere Benutzer oder bestehende Anwendungen verursachen. Also ändere ich normalerweise die Datei selbst vor dem Laden:

%Vor%     
homat 05.03.2016 09:02
quelle
0

Der Datumsstil, den Sie zu verwenden scheinen, ist Deutsch. PostgreSQL unterstützt diesen Datumsstil. Versuchen Sie Folgendes:

%Vor%     
Noel Cosgrave 26.04.2016 09:50
quelle