が入力されるテーブルを作成しています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
を持つ一時テーブルに、おそらく. 例:text
INSERT
to_timestamp()