DATEFORMAT применяется ко всей команде COPY, а не к одному полю.
Я получил его работать следующим образом ...
Ваша команда COPY предполагает, чтоданные разделены запятыми , поэтому я использовал эти входные данные и сохранил их в Amazon S3 bucket :
id_test colum_test,colum_date
94,0.3306,12312017
16,0.3039,12312017
25,0.5377,12312017
88,0.6461,12312017
Я создал таблицу:
CREATE TABLE foo (
foo_id BIGINT,
foo_value DECIMAL(4,4),
foo_date DATE
)
Затем загрузили данные:
COPY foo (foo_id, foo_value, foo_date)
FROM 's3://my-bucket/foo.csv'
IAM_ROLE 'arn:aws:iam::123456789012:role/Redshift-Role'
CSV
IGNOREHEADER 1
DATEFORMAT 'MMDDYYYY'
Обратите внимание, что рекомендуемый способ загрузки данных в Amazon Redshift - из файлов, хранящихся в Amazon S3 .(Я не пробовал использовать собственную команду psql
copy с Redshift, и рекомендовал бы против нее - особенно для больших файлов данных. Вы, конечно, не можете смешивать команды из команды Redshift COPY с командой psql Copy.)
Затем я запустил SELECT * FROM foo
и он вернулся:
16 0.3039 2017-12-31
88 0.6461 2017-12-31
94 0.3306 2017-12-31
25 0.5377 2017-12-31