1

が入力されるテーブルを作成していますCOPY。そのデータの形式は次のとおりです。

6/30/2014  2:33:00 PM
MM-DD-YYYY HH:MM:SS ??

CREATE TABLEステートメントのフォーマットとして何を使用しますか?

CREATE TABLE practice (
Data_Time ????
)

1 つの代替方法としてvarchar()、後でフォーマットする方法があります。複雑なようです。

4

2 に答える 2

2

タイムスタンプは常にtimestamp(or timestamptz)として保存します。
そのために文字列型 ( textvarchar、 ...) を使用しないでください。

CREATE TABLE practice (
  practice_id serial PRIMARY KEY
, data_time timestamp NOT NULL
);

タイムスタンプ リテラルがクリーンで標準MDY形式に従っている場合はDateStyle、トランザクションが適切なtimestamp型を直接読み取るように一時的に設定できます。

BEGIN;
SET LOCAL datestyle = 'SQL, MDY';  -- works for your example
COPY practice (data_time) FROM '/path/to/file.csv';
COMMIT;

それ以外の場合、あなたのアイデアはそれほど悪くはありません:列COPYを持つ一時テーブルに、おそらく. 例:textINSERTto_timestamp()

于 2015-03-07T09:10:19.567 に答える