が入力されるテーブルを作成していますCOPY。そのデータの形式は次のとおりです。
6/30/2014 2:33:00 PM
MM-DD-YYYY HH:MM:SS ??
CREATE TABLEステートメントのフォーマットとして何を使用しますか?
CREATE TABLE practice (
Data_Time ????
)
1 つの代替方法としてvarchar()、後でフォーマットする方法があります。複雑なようです。
が入力されるテーブルを作成していますCOPY。そのデータの形式は次のとおりです。
6/30/2014 2:33:00 PM
MM-DD-YYYY HH:MM:SS ??
CREATE TABLEステートメントのフォーマットとして何を使用しますか?
CREATE TABLE practice (
Data_Time ????
)
1 つの代替方法としてvarchar()、後でフォーマットする方法があります。複雑なようです。
タイムスタンプは常にtimestamp(or timestamptz)として保存します。
そのために文字列型 ( text、varchar、 ...) を使用しないでください。
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()