Импорт csv в базу данных Postgres с неправильным значением даты

У меня есть запрос, в котором есть поле даты со значениями, которые выглядят так в окне результатов запроса:

2013-10-01 00:00:00

Однако, когда я сохраняю результаты в csv, они сохраняются следующим образом:

2013-10-01T00:00:00

Это вызывает проблему, когда я пытаюсь КОПИРОВАТЬ csv в таблицу в Redshift, где это дает мне ошибку, указывающую, что значение не является допустимой меткой времени (поле, которое я импортирую, является полем метки времени).

Как я могу сделать так, чтобы он либо полностью удалял компонент времени, оставляя только дату, либо, по крайней мере, удалял «T» из результатов?

Я экспортирую результаты в csv, используя Aginity SQL Workbench для Redshift.


person Ryan    schedule 16.08.2014    source источник


Ответы (1)


Согласно этой статье базы знаний:

После импорта добавьте новые столбцы TIMESTAMP и используйте функцию CAST() для их заполнения:

ALTER TABLE events ADD COLUMN received_at TIMESTAMP DEFAULT NULL;
UPDATE events SET received_at = CAST(received_at_raw as timestamp);

События ALTER TABLE ADD COLUMN generate_at TIMESTAMP DEFAULT NULL; ОБНОВЛЕНИЕ событий SET generate_at = CAST(generated_at_raw как метка времени); Наконец, если вы не предвидите больше импорта в эту таблицу, необработанные столбцы меток времени VARCHAR могут быть удалены. Если вы планируете импортировать больше событий из S3, не удаляйте эти столбцы. Чтобы удалить столбцы, запустите:

ALTER TABLE events DROP COLUMN received_at_raw; ALTER TABLE events
DROP COLUMN generated_at_raw;

Надеюсь, это поможет...

person hd1    schedule 16.08.2014