Python 3 Timedelta OverflowError(Python 3 Timedelta溢出错误)
问题描述
我有一个大型数据库,正在将其加载到内存缓存中。我有一个流程可以做到这一点,每天迭代数据。
最近,此进程开始引发以下错误:
OverflowError: date value out of range
行
start_day = start_day - datetime.timedelta(days = 1)
这是在Ubuntu 14.04.5上的Python 3.4.3中运行的
推荐答案
您已到达datetime.date.min
,即1年1月1日:
>>> from datetime import date, timedelta
>>> date.min
datetime.date(1, 1, 1)
>>> date.min - timedelta(days=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: date value out of range
如果您从datetime.date.today()
开始,那么您的代码需要736K多一点的步骤才能达到目标:
>>> date.today().toordinal()
736766
您的代码可能在某处有错误,减法太频繁。
这篇关于Python 3 Timedelta溢出错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!