Ваш текущий запрос имеет severals проблемы, два из которых я думаю, что мой ответ может разрешить. Во-первых, вы пытаетесь вставить пустую строку ''
для обработки значений NULL
в столбце dojo
. Это не сработает, потому что пустая строка не является допустимой меткой времени. Как указывали другие, одним из решений было бы использовать current_timestamp
в качестве заполнителя.
Другая проблема заключается в том, что вы неправильно используете to_char
для форматирования данных временной метки. Вывод to_char
- это строка, и способ, которым вы ее используете, заставит Postgres отклонить ее. Вместо этого вы должны использовать to_timestamp()
, который может анализировать строку и возвращать метку времени. Что-то вроде следующего, что я верю, что вы собираетесь делать:
insert into employee (eid, dojo)
select 14, coalesce(to_timestamp(dojo, 'DD/MM/YYYY HH:MI:SS PM'), current_timestamp)
from employee;
Это предполагает, что данные метки времени отформатирован следующим образом:
DD/MM/YYYY HH:MI:SS PM (e.g. 19/2/1995 12:00:00 PM)
Он также не ясно, почему вы вставляете обратно в таблицу employee
, которая имеет неиспользуемые данные, а не вставляет в новую таблицу. Если вы решите повторно использовать employee
, вам может понадобиться очистить плохие данные позже.
ОШИБКА: неверный входной синтаксис для типа временной метки: «» Line: 1 – TheDragonWarrior
Это показывает мне, что ошибка, когда я пытаюсь вставить, я знаю, сог метка оленья кожа позволяет «» – TheDragonWarrior
Пожалуйста, покажите нам данные из 'столбца dojo'. В настоящее время вы пытаетесь вставить символьные данные в метку времени. –