当读取日期超出范围时,psycopg2错误输出

时间:2016-10-21 19:56:59

标签: python timestamp psycopg2

我得到了

  

ValueError:年份超出范围

当我的psycopg2 cursor.fetchall 遇到具有奇怪年份的日期值时,例如0001。

有没有办法让psycopg2与任何一年兼容并避免这种例外?

2 个答案:

答案 0 :(得分:1)

如果年份小于python支持的年份,您可以编写自己的类型规范并返回date.min。请参阅this faq(关于为float数据返回Decimal而不是numeric),并将其作为起点,根据您的数据类型和要求对其进行自定义。

答案 1 :(得分:0)

扩展到 piro 的回答

DATE2STR = psycopg2.extensions.new_type(
    psycopg2.extensions.DATE.values,
    'DATE2STR',
    lambda value, curs:
        str(value) if value is not None else None)

psycopg2.extensions.register_type(DATE2STR)