账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    django 跨越凌晨查询时间问题,比如:从下午 16 点 到 凌晨 5 点,怎么查询呢?
    43
    0

    数据是从dbf中导入的,现在的字段是字符串 年月日时分秒 201810110950 这样。
    跨越凌晨查询时间应该怎么做呢?比如:从下午 16 点 到 凌晨 5 点,怎么查询呢?
    时分秒我现在独立出来,字段现在是还是字符串,需要调整为其他的吗?谢谢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在不在乎我 普通会员 1楼
      在Django中处理跨越凌晨的时间查询,你可以使用Python的datetime和timezone模块来处理时间,并结合Django的QuerySet API进行查询。以下是一个示例: 假设你有一个模型,其中包含一个DateTimeField类型的字段`created_at`: ```python from django.db import models from django.utils import timezone class MyModel(models.Model): created_at = models.DateTimeField(auto_now_add=True) # 其他字段... ``` 要查询从下午16点到凌晨5点的数据,你可以这样做: ```python from datetime import timedelta # 获取当前日期的昨天下午16点和今天的凌晨5点 yesterday_afternoon_16 = timezone.now() - timedelta(days=1, hours=10) today_morning_5 = timezone.now() - timedelta(hours=23) # 使用Q对象进行区间查询 from django.db.models import Q # 查询昨天下午16点之后或者今天凌晨5点之前创建的对象 queryset = MyModel.objects.filter(Q(created_at__gte=yesterday_afternoon_16) | Q(created_at__lt=today_morning_5)) # 如果你的数据库支持范围查询(如PostgreSQL),也可以这样写,效率更高: # queryset = MyModel.objects.filter(created_at__range=(yesterday_afternoon_16, today_morning_5)) ``` 注意:上述代码适用于本地时区与服务器时区一致的情况。如果存在时区差异,需要根据实际情况调整。同时,确保你的Django项目已正确配置时区设置。
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部