Python / postgres: есть ли преимущество в преобразовании mxDateTime во встроенные объекты datetime? - PullRequest
2 голосов
/ 22 декабря 2010

Некоторый код, который я наследую, использует модуль Python psycopg2 для возврата объектов mxDateTime из запросов к базе данных Postgres. Я предполагаю, что это поведение по историческим причинам, но интересно, есть ли другое объяснение. Учитывая, что у меня уже есть зависимость mxDateTime через большую библиотеку, которую я унаследовал, есть ли преимущество перед преобразованием во встроенный тип данных datetime перед выполнением этих дат?

1 Ответ

2 голосов
/ 23 декабря 2010

Есть большая причина не менять это, что не является историческим.Временные метки Python часто бывают 32-битными.

Postgresqls timestamp:

min значение 4713 BC

max value: 5874897 AD

http://www.postgresql.org/docs/current/static/datatype-datetime.html#DATATYPE-DATETIME-TABLE

Python's:

classmethod date.fromtimestamp (timestamp) ¶

... Обычно это ограничивается годами отС 1970 по 2038 год. Обратите внимание, что в системах без POSIX, которые включают в себя понятие високосных секунд в своем значении временной метки, високосные секунды игнорируются функцией timetimemp ().

http://docs.python.org/library/datetime.html#datetime.date.fromtimestamp

ВклWindows 7 с Python 2.5:

>>>> date.fromtimestamp(0)
datetime.date(1969, 12, 31)
>>> date.fromtimestamp(-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: timestamp out of range for platform localtime() function
...