Я пытаюсь написать запрос, чтобы вставить значение в поле типа timestamp with no timezone data
. Значение происходит из файла CSV.
В версии, с которой я работаю, PostgreSQL 8.1.21.
Загрузка CSV файла выполняется клиентом и имеет столбец даты. Дата иногда встречается как '28-Sep-13'
, а иногда и как '28/09/2013'
.
Я попытался использовать следующее, чтобы вывести строку в метку времени:
str_date::timestamp
.
Это отлично работает, если str_date
- это что-то вроде '28-Sep-13'
, но оно не будет работать, если входящая дата имеет формат '28/09/2013'
, когда возникает эта ошибка:
ERROR: date/time field value out of range: "28/09/2013" HINT: Perhaps you need a different "datestyle" setting
В основном клиент продолжает изменять формат даты в загруженном CSV файле.
Есть ли способ преобразовать строки даты в метку времени в зависимости от ее фактического формата?