Wie konvertieren von Datums-Zeichenketten zu timestamp, ohne zu wissen, das Datum-format

Ich versuche eine Abfrage schreiben, fügen einen Wert in eine timestamp with no timezone data - Typ-Feld. Der Wert kommt aus einer CSV-Datei.

Die version mit der ich arbeite, ist PostgreSQL 8.1.21.

Die CSV-Datei-upload erfolgt durch den Kunden und es hat eine Spalte Datum. Das Datum kommt manchmal als '28-Sep-13' und manchmal als '28/09/2013' Formate.

Ich versuchte, verwenden Sie die folgende Besetzung der string in timestamp:
str_date::timestamp.

Dies funktioniert gut, wenn str_date ist so etwas wie '28-Sep-13' aber es wird nicht funktionieren, wenn das eingehende Datum hat das format '28/09/2013', wenn dieser Fehler Auftritt:

ERROR: date/time field value out of range: "28/09/2013"  
HINT:  Perhaps you need a different "datestyle" setting

Grundsätzlich der AUFTRAGGEBER verwahrt das ändern der Datum-format in der hochgeladenen CSV-Datei.
Gibt es eine Möglichkeit, konvertieren Sie die Datums-String in ein timestamp-je nach Ihrer tatsächlichen format?

Zunächst: sollten Sie aktualisieren. PostgreSQL 8.1 wurde im Jahr 2005 veröffentlicht und erreichte Ende des Lebens, vor einem Jahr. Es ist schrecklich veraltet.
Wie schön von Euch zu verwenden, meinem Geburtstag als ein Beispiel 😉

InformationsquelleAutor Shiver | 2011-11-15

Schreibe einen Kommentar