我正在尝试添加一个人的日期时间对象。每当出生年份小于 1942 年时,从数据库读取数据时,我都会收到一个奇怪的错误 DataError: unable to parse time
。
class Person(models.Model):
"""A simple class to hold the person info
"""
name = models.CharField(max_length=100)
born = models.DateTimeField(blank=True, null=True)
每当我尝试添加出生于 1929 年的人的出生 datetime
对象然后尝试读取它时,它都会失败。
让我重申一下,数据插入工作正常,但在读取过程中失败了。我假设数据库内部发生了一些错误。
我做了一组测试,发现每当我添加 1940 年或之前出生的人时它都会失败。它给出 DataError: unable to parse time
我正在使用 PostgreSQL。
如有任何帮助,我们将不胜感激。谢谢。
最佳答案
我在这里唯一能想到的可以在 PostgreSQL docs 中找到.我的猜测是 Django 将您的日期存储在“reltime”字段中,该字段只能追溯到 68 年前。我的计算器验证 2009-68 == 1941,这似乎与您报告的非常接近。
我建议您通过运行以下命令查看表的架构:
$ python manage.py sql appname
看看有问题的日期字段是否是我怀疑的“reltime”字段。如果是这种情况,我不知道如何将其更改为更兼容的字段而又不会弄乱一切。
关于python - Django 中的日期时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/858470/