Python psycopg2不支持“上的错误”;“当前”;当我';我正在使用当前日期

Python psycopg2不支持“上的错误”;“当前”;当我';我正在使用当前日期,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,我使用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 plu

我使用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\u DATE
,而不是
CURRENT
。在我的查询中,我可以使用
today
而不是
CURRENT\u DATE
来“修复”异常,但我想了解其中的情况。这是一个psycopg2错误吗?

您正在给一个日期列指定字符串“CURRENT\u DATE”。在将字符串解析为日期时,它很可能使用u作为可接受的分隔符

您想要的是
当前日期
而不是
“当前日期”

所以试试这个:

UPDATE cw_ImportLog SET cw_import_date = current_date;

编辑:如果必须向其输入字符串,请立即使用有效的
。请参阅文档中关于它的结尾。

问题是,当前\u日期是一个替换值,在字典中传递,驱动程序应该执行替换(这就是为什么在查询值中看到“E”)不确定python对象是否实际存在到当前\u日期的映射。如果您将其作为字符串输入,为什么不像您的示例中那样使用
现在使用
?编辑:当然,您可以使用datetime.now()或任何您想要的工具,在python中为它提供实际日期。问题是,我很确定它在过去曾经使用过now(代码至少在过去的3年中已经存在了),我不知道最近在安装的软件/db安装中有什么变化……我在当前的时间戳上得到了相同的错误,但现在工作了。