ОШИБКА: неверный синтаксис ввода для временной метки типа с часовым поясом: «09/03/1943 01:00:00 MWT» - PullRequest
0 голосов
/ 03 сентября 2018

Я вставляю записи от table1.column1 до table2.colum2. Оба столбца имеют тип timestampz.

К сожалению, одна запись со значением «1943-09-03 01: 00: 00-06» выдает ошибку ниже:

ОШИБКА: неверный синтаксис ввода для временной метки типа с часовым поясом: "03.09.1943 01:00:00 MWT"

Я могу исправить это, используя ::TIMESTAMP.

Может кто-нибудь сказать мне, как правильно исправить это и почему это происходит только для одной записи?

Редактировать 1:

Обе таблицы находятся в разных базах данных. Поэтому я выбираю значения из Table1.column1, а затем вставляю в Table2.column2 отдельно в другом подключении к базе данных. Я предполагаю, что ядро ​​PHP PostgreSQL функционирует, преобразовывая значение "1943-09-03 01: 00: 00-06" во время строки "03.09.1943 01:00:00 MWT" и эту ошибку выброса времени строки при вставке.

Я на самом деле пытаюсь вставить "03.09.1943 01:00:00 MWT", а не "1943-09-03 01: 00: 00-06".

1 Ответ

0 голосов
/ 03 сентября 2018

при использовании ::TIMESTAMP будет использоваться формат времени по умолчанию БД, формат зависит от вашей культуры БД.

Я бы предложил вам явно указать формат datetime вашей строки, когда вы хотите преобразовать string в DateTime или метку времени

Вы можете попробовать использовать функцию to_timestamp и установить строку в формате DateTime.

Запрос 1 :

SELECT to_timestamp('09/03/1943 01:00:00 MWT', 'DD/MM/YYYY hh24:mi:ss')

Результаты :

|         to_timestamp |
|----------------------|
| 1943-03-09T01:00:00Z |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...