2014-03-12 22 views
19

对于浮动我们有特殊的对象,如-inf(和+ inf),并保证比较少于(和大于)其他数字。是否有日期时间±无穷?

我需要类似的日期时间的东西,有没有这样的事情? In-db排序必须与django queryset过滤器一起正常工作,理想情况下它应该是db-agnostic(但至少它必须与mysql和sqlite一起使用)和timezone-agnostic。

目前我使用的是空/ None,但它创造非常杂乱查询,因为None做的 -inf和+ INF的工作,我必须明确地考虑在查询所有这些案件。

+0

的日期通常存储为平台的整数(第二分辨率)或整数+整数结构(给一秒分辨率),这意味着你有一个上限和下限,而不是特殊的“INF”,“南”,等等。 ,它们实际上是在浮点标准中编码的。 –

回答

17

试试这个:

>>> import datetime 
>>> datetime.datetime.max 
datetime.datetime(9999, 12, 31, 23, 59, 59, 999999) 

你可以得到datetimemin/maxdatetime

11

没有;最好的是datetime.datetime.mindatetime.datetime.max的值。

这些保证是最小和最大的datetime值,但datetime.datetime.min == datetime.datetime.min仍然是True;一切都更大。对于datatime.datetime.max的值,情况正好相反。

datetime.datedatetime.time也有minmax的值。

+0

这些db-agnostic如何? – wim

+0

@wim:这些是*'datetime'对象*;如果您现在将'datetime'对象传递给您的Django查询,则这两种情况也不例外。它们只是您可以创建的最小最大的'datetime'对象。 –

+0

因此,无论平台,数据库,时区是什么,它们都是最小和最大的? – wim

相关问题