Django queryset TruncMonth 输出格式问题
Django queryset TruncMonth output format issue
我正在为图表使用 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 )...
我有什么好的解决办法吗?
提前致谢。
如果你想在之后将其用作字符串,你可以这样做:
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)
)
这里 TruncMonth 的目的是让 1st January 和 10th January 相等,这样,这些值就可以按月分组。
如果你想打印月份,你可以简单地打印使用doDate
作为
print(doDate.year,'-',doDate.month)
我正在为图表使用 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 )...
我有什么好的解决办法吗?
提前致谢。
如果你想在之后将其用作字符串,你可以这样做:
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)
)
这里 TruncMonth 的目的是让 1st January 和 10th January 相等,这样,这些值就可以按月分组。
如果你想打印月份,你可以简单地打印使用doDate
作为
print(doDate.year,'-',doDate.month)