Ошибка Postgresql: строка не была распознана как действительная дата - PullRequest
0 голосов
/ 11 марта 2011

Я получаю эту ошибку, когда пытаюсь получить поле даты из postgresql из C #.Как и в select datefield from table.

Система, в которой работает postgesql, находится в часовом поясе IST.Я не могу редактировать какие-либо настройки базы данных или системы, в которой она развернута.Что я могу сделать в своем коде, чтобы предотвратить эту проблему?

ОБНОВЛЕНИЕ: клиент находится в MST Timzone.Забыл упомянуть, что.

ОБНОВЛЕНИЕ2: Код прикрепления

DbDataAdapter myAdapter = dbFactory.NewDataAdapter(sSQL, myConnection);
if (myConnection.State != ConnectionState.Open)
       myConnection.Open();   
ds = new DataSet();
myAdapter.Fill(ds, dataTableName);

Ответы [ 2 ]

3 голосов
/ 11 марта 2011

Вы уверены, что используете правильный диалект на DbDataAdapter?Какой тип возвращает ваш завод?То есть, что возвращает myAdapter.GetType()?

PostgreSQL обрабатывает минимальные / максимальные значения, немного отличающиеся от большинства баз данных, и может возвращать даты в виде:

  • '-infinity' соответствует DateTime.MinValue
  • 'infinity' для DateTime.MaxValue

Если ваш адаптер не обрабатывает, как я полагаю, у вас может получиться похожая ошибка.

Полагаю, вам следуетиспользовать NpgsqlDataAdapter от провайдера Npgsql, но вы нигде не упоминаете об этом.

РЕДАКТИРОВАТЬ: Обнаружено, что есть известная ошибка: http://pgfoundry.org/forum/message.php?msg_id=1005522,, но не нашли, какие версии этоаффекта.Это связано с получасовыми часовыми поясами (например, +3: 30).Я думаю, это исправлено в 2.0.8.

http://pgfoundry.org/frs/shownotes.php?release_id=1686 некоторые исправления timestampTZ также присутствовали в 2.0.10

1 голос
/ 11 марта 2011

Попробуйте прочитать его как строку, а затем проанализировать как дату в C #.

Как:

String date = GetFromDb();
DateTime realDate = DateTime.Parse(date);

Посмотрите, работает ли это, может быть просто ошибка формата.

Однако, если это не поможет, не могли бы вы опубликовать свой код.

Спасибо, Алекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...