【问题标题】:Django queryset TruncMonth output format issueDjango queryset TruncMonth 输出格式问题
【发布时间】:2020-04-23 16:59:18
【问题描述】:

我正在为图表使用 Django ORM 查询集,并且难以更改输出格式

'source': ActivityLog.objects.filter(requestType='add',doDate__lte=datetime.datetime.today(), doDate__gt=datetime.datetime.today()-datetime.timedelta(days=365)).\
                   values(작업월=TruncMonth('doDate')).annotate(요청건수=Count('requestType'), IP개수=Sum('ipCnt'))},

当我使用 'TruncMonth' 时,输出是这样的 -> 2019-10-01T00:00:00

但我只想使用 2019-10 (YYYY-MM)...

有什么好的解决办法吗?

提前致谢。

【问题讨论】:

  • 请使用英文变量名。

标签: django django-queryset django-orm


【解决方案1】:

如果你想在那之后将它用作字符串,你可以这样做:

from django.db.models import DateField, CharField
from django.db.models.functions import TruncMonth, Cast, Substr

ActivityLog.objects.values(
        result=Substr(
            Cast(TruncMonth('doDate', output_field=DateField()),
                 output_field=CharField()), 1, 7)
    )

【讨论】:

    猜你喜欢
    • 2018-03-26
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多