#python #timestamp #psycopg2
#python #временная метка #psycopg2
Вопрос:
Я получаю
Ошибка значения: год находится вне диапазона
Когда мой psycopg2
курсор.fetchall обнаруживает значение даты со странным годом, например 0001.
Есть ли какой-либо способ сделать psycopg2 совместимым с любым годом и избежать этого исключения?
Ответ №1:
расширяясь к ответу пиро
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)
Ответ №2:
Вы можете написать свой собственный typecaster и возвращать date.min, если год меньше того, который поддерживает python. Ознакомьтесь с этим часто задаваемым вопросом (о возврате float
вместо Decimal
для numeric
данных) и используйте его в качестве отправной точки, чтобы настроить его для вашего типа данных и ваших требований.