Прошу прощения за вопрос новичка POSTGRES, я немного больше знаком с MSMSQL, но я, вероятно, тоже буду там бороться.
У меня есть CSV с приблизительно 12 миллионами строк, которые я пытаюсь импортировать.Одним из полей является поле даты в формате "ГГГГ-ММ-ДД ЧЧ: ММ" .
В моей таблице тип поля установлен на TIMESTAMP (это верно?).Ошибка импорта CSV: "ОШИБКА: значение поля даты / времени вне диапазона:" 2019-20-09 04:00 "" .
Как я могу импортировать этот тип строки даты?
Мои текущие заявления выглядят так:
CREATE TABLE WoSWeatherGrids
(
id serial NOT NULL,
Location NUMERIC(6),
Date TIMESTAMP,
)
COPY WosWeatherGrids(Location,Date)
FROM '\\location\Weathergrids.csv' DELIMITER ',' CSV HEADER;
Получена ошибка:
ERROR: date/time field value out of range: "2019-20-09 04:00"
HINT: Perhaps you need a different "datestyle" setting.
CONTEXT: COPY wosweathergrids, line 2, column date: "2019-20-09 04:00"
SQL state: 22008
Я не могу изменить строки в CSV, так как это процесс, который запускается автоматически с выхода другого программного обеспечения, который, как мы надеемся, будет происходить пару раз в день.Я надеюсь, что есть простой метод, который можно выделить, чтобы позволить мне импортировать этот тип строки.
CSV Тип образца
Location,Date
1075,2019-20-09 04:00
1075,2019-20-09 05:00
1075,2019-20-09 06:00
1075,2019-20-09 07:00
РЕДАКТИРОВАТЬ: Проблема, похоже, связана с тем, что Postgres не нравится формат YDM DateStyle.Одна из оригинальных систем использует MS SQL, и T-SQL может справиться с этим.Я не могу изменить эту систему, поэтому мне все еще нужно разобраться с этой проблемой.
EDIT2: согласно документации здесь Я смог привести пример YYYY-DD-MM HH: тип даты SS к тому, что мне нужно, используя следующее,select to_char(to_timestamp('2019-20-09 04:00', 'YYYY-DD-MM HH24:MI'), 'HH24:MI DD/MM/YYYY');
.Я все еще несколько застрял в том, что мне нужно либо понять, как сделать это из входных данных CSV, либо как создать временную таблицу, а затем создать правильную таблицу и привести ее на другую сторону.