2016-06-30 8 views
0

Wie fügt man kulturinvariante Informationen hinzu, während der Zeitstempel in der Postgresql-Datenbank hinzugefügt wird?Wie fügt man in Postgresql Informationen zur Kulturinvariante in den Zeitstempel ein?

erstellen Tabellenabfrage:

CREATE TABLE Table1(Id SERIAL NOT NULL PRIMARY KEY,CreatedDate TIMESTAMP); 

Insert-Abfrage:

insert into Table1 (CreatedDate) 
    values (convert(TIMESTAMP,'18-06-12 10:34:09 PM',112)); 

ich unten Störung erhalten, während Abfrage in PostgreSQL-Datenbank ausgeführt wird.

column "timestamp" does not exist 

Ist dies der richtige Weg Zeitstempel in Spalte einzufügen?

+0

Können Sie kommentieren, was bedeutet Ihre '112'? –

+0

CultureInfo-Format ("en-us"). – Shesha

Antwort

3

Ich denke, Sie denken rückwärts darüber nach. Sie fügen einem Zeitstempel keine kulturinvarianten Informationen hinzu. Sie formatieren den Zeitstempel damit (siehe to_char) oder Sie verwenden ihn, um einen Zeitstempel zu parsen (siehe die Konfigurationsoption datestyle).

Um einen Zeitstempel einzufügen, fügen Sie ihn einfach ein und stellen Sie Ihren Datumstyp entsprechend ein und übertragen Sie ihn dann auf den Zeitstempel. Also, wenn dies immer US ist, dann gilt:

aber in Ihrem Fall denke ich, etwas in Ihrem Beispiel ist falsch, weil:

SELECT '18-06-12 10:34:09 PM'::timestamp; 

funktioniert, weil 2018 ein gültiges Jahr ist, aber wenn ich zum ersten Mal SET DATESTYLE = 'US'; dann bekomme ich ein Fehler, weil 18 kein gültiger Monat ist.

1

Als ich herausgefunden habe, haben Sie ADD TIME ZONE verwenden wie

(to_timestamp('18-06-12 10:34:09 PM', 'yy-MM-dd') AT TIME ZONE 'America/Los_Angeles') 

P. S. es ist nur ein Beispiel