gpt4 book ai didi

python - 从 Django DateTimeField 中查找相对日期

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:53 25 4
gpt4 key购买 nike

型号:

class MyClass(models.Model):
car = models.ForeignKey(Car)
date = models.DateTimeField(auto_now=True, auto_now_add=True)

sql:

SELECT car FROM cars_myclass WHERE date < NOW() - INTERVAL 1 DAY;

所以,我有类似的东西:

cars = MyClass.objects.all().filter(date < ... )

但是如何编写 NOW() - INTERVAL 1 DAY 呢?谢谢。

最佳答案

通过 datetime.datetime对象(减去 datetime.timedelta 对象):

>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2013, 12, 29, 21, 54, 30, 836000)
>>> now - datetime.timedelta(days=1)
datetime.datetime(2013, 12, 28, 21, 54, 30, 836000)

import datetime

cars = MyClass.objects.filter(date__lt=datetime.datetime.now() - datetime.timedelta(days=1))

更新 Mikko Ohtamaa 的评论:

同时为了避免时区问题,我建议使用 timezone.now()而不是 datetime.datetime.now()(自 Django 1.4 起可用)

import datetime
from django.utils import timezone

cars = MyClass.objects.filter(date__lt=timezone.now() - datetime.timedelta(days=1))

关于python - 从 Django DateTimeField 中查找相对日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20825337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com