首页 > 解决方案 > 如何从Django中的时间戳中仅提取一天

问题描述

我想从(2021-8-3)中得到一个特定的日期,比如“8”,但它的显示如下

如何提取特定日期?

 usertime = User.objects.filter(groups__name = 'patient').values('date_joined').annotate(date_only=Cast('date_joined', DateField()))

标签: pythondjangodjango-modelsdjango-views

解决方案


from django.db.models import F, Func,Value, CharField

usertime = (User.objects.filter(groups__name = 'patient').values('date_joined')
            .annotate(date_only=Func(
                F('date_joined'),
                Value('MM'),
                function='to_char',
                output_field=CharField()
            )
                     ).values('date_only'))

试试这个,从@Yannics 的答案中得到参考:https ://stackoverflow.com/a/60924664/5804947

您可以在字段下进一步使用YYYY/DD分别表示年份/日期,Value并且在使用 PostgreSQL 数据库时可以正常工作。

另一种方法

from django.db.models.functions import Extract
usertime = User.objects.filter(groups__name = 'patient').values('date_joined').annotate(date_only=Extract('date_joined', 'month'))

推荐阅读