2010-12-22 42 views
2

我繼承的一些代碼使用Python的psycopg2模塊從Postgres數據庫查詢返回mxDateTime對象。我猜這種行爲是出於歷史原因,但想知道是否有另一種解釋。 鑑於我已經有了一個mxDateTime依賴關係,通過我繼承的大型庫,在這些日期操作之前轉換爲內置的datetime數據類型有什麼好處嗎?Python/postgres:將mxDateTime轉換爲內置datetime對象的優勢?

回答

2

有一個很大的理由不改變它,這不是歷史。內置的python時間戳通常只有32位。

Postgresqls時間戳:

最小值BC 4713

最大值:AD 5874897

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

Python的:

classmethod date.fromtimestamp(timestamp)¶

...這種情況常見於1970年至2038年。請注意,在非POSIX系統中,包括時間戳概念中的閏秒,閏秒被fromtimestamp()忽略。

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 
相關問題