Python/postgres:将 mxDateTime 转换为内置日期时间对象有什么优势?

发布于 2024-10-08 17:30:29 字数 164 浏览 4 评论 0原文

我继承的一些代码使用 Python 的 psycopg2 模块从 Postgres 数据库查询返回 mxDateTime 对象。我猜测这种行为是出于历史原因,但想知道是否还有其他解释。 鉴于我已经通过继承的大型库具有 mxDateTime 依赖项,在对这些日期进行操作之前转换为内置日期时间数据类型是否有任何优势?

Some code I am inheriting uses Python's psycopg2 module to return mxDateTime objects from Postgres database queries. I am guessing this behavior is for historical reasons, but wondering if there there is another explanation.
Given that I already have an mxDateTime dependency via the the large library I have inherited, is there any advantage to converting to the built in datetime data type before operating on these dates?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

多情癖 2024-10-15 17:30:29

有一个很大的理由不改变它,这不是历史性的。内置的 Python 时间戳通常只有 32 位。

Postgresql 时间戳:

最小值 4713 BC

最大值:5874897 AD

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

Python 的:

类方法 date.fromtimestamp(timestamp)¶

...通常将其限制为从 1970 年到 2038 年。请注意,在时间戳概念中包含闰秒的非 POSIX 系统上,fromtimestamp() 会忽略闰秒。

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

在带有 Python 2.5 的 Windows 7 上:

>>>> 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

There's big a reason to not change it that is not historical. Built in python timestamps are often only 32-bit.

Postgresqls timestamp:

min value 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)¶

... It’s common for this to be restricted to years from 1970 through 2038. Note that on non-POSIX systems that include leap seconds in their notion of a timestamp, leap seconds are ignored by fromtimestamp().

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

On windows 7 with 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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文