使用current_date时psycopg2出现NotSupportedError错误
我在用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的一个bug吗?
1 个回答
2
你把字符串 'CURRENT_DATE' 传给了一个日期列。很可能在把这个字符串解析成日期时,它会把下划线(_)当作一个有效的分隔符。
你真正想要的是 CURRENT_DATE
而不是 'CURRENT_DATE'
。
所以你可以试试这个:
UPDATE cw_ImportLog SET cw_import_date = current_date;
补充说明: 如果你必须传一个字符串,可以用 now
,这个是有效的。关于这个内容,可以查看文档中第 9.9.4节 的最后部分。