是否存在一个无限的日期时间?
对于浮点数,我们有一些特殊的对象,比如负无穷(-inf)和正无穷(+inf),这些对象在比较时总是会小于或大于其他数字。
我需要类似的东西来处理日期时间,不知道有没有这样的选项?在数据库中排序必须和django的查询集过滤器正常工作,理想情况下它应该和不同的数据库都能兼容(至少要能在mysql和sqlite上使用),而且不受时区影响。
目前我在使用空值(null)或None
,但这让查询变得非常复杂,因为None
同时充当了负无穷和正无穷的角色,我必须在查询中明确考虑所有这些情况。
3 个回答
4
如果有人在使用Pandas数据框中的日期:
>>> import pandas as pd
>>> pd.Timestamp.min
Timestamp('1677-09-21 00:12:43.145225')
>>> pd.Timestamp.max
Timestamp('2262-04-11 23:47:16.854775807')
29
其实没有其他的选择;你能用的最小和最大时间值就是 datetime.datetime.min
和 datetime.datetime.max
。
这些值是保证最小和最大时间的,但 datetime.datetime.min == datetime.datetime.min
这个表达式的结果是 True
;也就是说,其他的时间值都比这个大。对于 datetime.datetime.max
的情况则正好相反。
另外,datetime.date
和 datetime.time
也有各自的最小和最大值。
48
试试这个:
>>> import datetime
>>> datetime.datetime.max
datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)
你可以获取 min
(最小值)和 max
(最大值)用于 datetime
(日期时间)、date
(日期)和 time
(时间)。