psycopg2 NotSupportedError в «current», когда я использую current_date - PullRequest
0 голосов
/ 29 ноября 2011

Я использую psycopg2 для доступа к базе данных postgresql 8.4, и при запросе на обновление я получаю следующее исключение:

  File "/home/alf/cubicweb/cubicweb/server/sources/native.py", line 744, in doexec
    cursor.execute(str(query), args)
NotSupportedError: ERREUR:  la valeur « current » pour la date et heure n'est plus supportée
LINE 1: UPDATE cw_ImportLog SET cw_import_date=E'CURRENT_DATE'

сообщение об ошибке локализовано, но преобразуется в «значение current длядата и время больше не поддерживаются ".

Что меня беспокоит, так это то, что в остальной части сообщения об ошибке упоминается CURRENT_DATE, а не CURRENT.Я могу «исправить» исключение, используя today вместо CURRENT_DATE в моем запросе, но я хотел бы понять, что там происходит.Это ошибка psycopg2?

1 Ответ

2 голосов
/ 29 ноября 2011

Вы передаете строку 'CURRENT_DATE' в столбец даты. Скорее всего, он использует _ в качестве допустимого разделителя при разборе строки как даты.

То, что вы хотите, это CURRENT_DATE, а не 'CURRENT_DATE'.

Так попробуйте это:

UPDATE cw_ImportLog SET cw_import_date = current_date;

Редактировать : Если вам нужно передать ей строку, используйте вместо нее now, что допустимо. См. Конец раздела 9.9.4 в документации об этом.

...