2012-05-14 2 views
0

У меня есть файл CSV от третьего лица, и я хочу создать таблицу Postgres. Существует несколько столбцов с информацией о стиле метки, но с разной степенью точности. Вот некоторые примеры данных двух полей «выдал» 2012-05-07 04:04:05 «reportedtime» 2012-05-12 00: 00: 00,571395Временные данные Postgres и синтаксис таблицы CREATE

Существует также еще одно поле который является «длительностью» и имеет такие данные, как 90 дней, 0:00:00 Есть ли тип данных Postgres для этого тоже?

Что бы синтаксис в том, что мне нужно, чтобы создать таблицу с помощью этих полей:

CREATE TABLE мля ( выданной ????, reportedtime ????, продолжительности ??? ) ;

Примечание: Я уже знаком с этой частью:

COPY бэ (выдан, reportedtime, длительность) FROM путь к файлу DELIMITER '' CSV жатки;

Просто не хотите, чтобы бомба при запуске, потому что сохраненные данные не соответствуют типам столбцов таблицы.

+0

Я думаю, что продолжительность - тип INTERVAL, а две другие - TIMESTAMP (БЕЗ ВРЕМЕННОЙ ЗОНЫ). Но точность «p», на которую они указывают, похоронена где-то в документах postgres ... http://www.postgresql.org/docs/8.1/static/datatype.html http://www.postgresql.org/docs/ 8.1/static/datatype-datetime.html – JGFMK

+0

Они также упоминают. Цитата: Допустимый диапазон p от 0 до 6 для временных меток и типов интервалов. Но не указывать, что 0 до 6 представляют - документация отстой! – JGFMK

+1

Зачем использовать очень старую документацию? Версия 8.1 является OEL в течение почти двух лет. –

ответ

1

Использование timestamptz и interval (documentation). Я использовал тип с учетом часового пояса, поскольку я всегда это делаю, он дает больше свободы в последующих манипуляциях с данными.

CREATE TABLE blah (
    issued timestamptz, 
    reportedtime timestamptz, 
    duration interval); 

COPY blah FROM stdin; 
2012-05-07 04:04:05 2012-05-12 00:00:00.571395 90 days, 0:00:00 
\. 

SELECT * FROM blah; 
Смежные вопросы