python 技巧

【小记】django中DateTimeField字段比较操作

技术分享

systemime
2021-06-15
2 min

django的model中DateTimeField字段,ORM和queryset对象操作示例

主要是用 datetime 模块,有关其他DateTime关于ORM操作,查看django 中使用DateTime常用的时间查询

# 实现一个时间节点取值的函数

import datetime

def get_timeline(operator, seconds):
    """
    :param operator: 操作 支持 + -
    :param seconds: 时间跨度,datetime.timedelta支持的时间参数均可传入,这里使用seconds
    :return:
    """
    timeline = datetime.timedelta(seconds=seconds)
    if operator == "+":
        return datetime.datetime.now() + timeline
    return datetime.datetime.now() - timeline

# 查询创建超过15天的订单信息

# 直接ORM操作

from app.models import Order

# 获取相对当前时间15天前的时间点
expiry_date = get_timeline("-", 60 * 60 * 24 * 15)


# 日期 X月 ---1-3-5-7-9-10-11-12-13-14-15 -------- 日
# -----------------^ 创建--------------^ 今天-----
# ---------- ^ 当前 减15天后----------------------
# 大于 expiry_date 这个时间点,表示在15天内,排查这部分的订单数据,得到目标数据
Order.object.exclude(
    create_time__gte=expiry_date
)

# 查询出QuerySet对象后

order = Order.object.get(pk=1)

# 使用时间戳操作
now_time = int(datetime.now().timestamp())
if(now_time - int(order.create_time.timestamp()) > 60 * 60 * 24 * 15):
    # you operator
    pass
上次编辑于: 6/17/2021, 3:08:08 AM