最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django中日期時間型字段進(jìn)行年月日時分秒分組統(tǒng)計

 更新時間:2020年11月27日 08:46:30   作者:燃燈工作室  
這篇文章主要介紹了Django中日期時間型字段進(jìn)行年月日時分秒分組統(tǒng)計,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.數(shù)據(jù)結(jié)構(gòu)說明:

數(shù)據(jù)結(jié)構(gòu)如下:modification字段為修改數(shù)據(jù)時間字段,格式為 年,月,日,時,分,秒。
案例場景為,根據(jù)modification字段,統(tǒng)計每個統(tǒng)計粒子,產(chǎn)生數(shù)據(jù)的條數(shù)。如需要統(tǒng)計2020年10月29日 每個小時段產(chǎn)生數(shù)據(jù)的條數(shù)。

在這里插入圖片描述

要進(jìn)行這種統(tǒng)計需要用到 Django的connection庫。
統(tǒng)計年月日粒子用 date_trunc_sql,統(tǒng)計時分秒用 datetime_extract_sql

2.進(jìn)行年月日粒子的統(tǒng)計

 2.1 官方 date_trunc_sql 原型

def datetime_trunc_sql(self, lookup_type, field_name, tzname):
 """
 Given a lookup_type of 'year', 'month', 'day', 'hour', 'minute', or
 'second', return the SQL that truncates the given datetime field
 field_name to a datetime object with only the given specificity.
 """
 raise NotImplementedError('subclasses of BaseDatabaseOperations may require a datetime_trunc_sql() method')

解釋說明下:

函數(shù)需要傳入三個參數(shù):

  • lookup_type:統(tǒng)計粒子(year->年,月->month,day->日,hour->時,minute->分,second->秒)
  • field_name:統(tǒng)計字段的名次
  • tzname:時區(qū),在中國一般用的是東8區(qū),傳入8即可

2.2 年

from django.db import connection
from django.db.models import Count
# 'year', 'month', 'day', 'hour', 'minute', 'second'

select = {'year': connection.ops.datetime_trunc_sql('year', 'establish', 8)}
result = models.FocusOnRecord.objects.extra(select=select).values('year').annotate(number=Count('id')).order_by("year")[0:9]

for key in result:
 print(key)

>>{'year': datetime.datetime(2019, 1, 1, 0, 0), 'number': 2168}
>>{'year': datetime.datetime(2020, 1, 1, 0, 0), 'number': 9369}

2.3 月

from django.db import connection
from django.db.models import Count
# 'year', 'month', 'day', 'hour', 'minute', 'second'

select = {'month': connection.ops.datetime_trunc_sql('month', 'establish', 8)}
result = models.FocusOnRecord.objects.extra(select=select).values('month').annotate(number=Count('id')).order_by("month")[0:9]

for key in result:
 print(key)
 
>>{'month': datetime.datetime(2019, 6, 1, 0, 0), 'number': 8}
>>{'month': datetime.datetime(2019, 7, 1, 0, 0), 'number': 51}
>>{'month': datetime.datetime(2019, 8, 1, 0, 0), 'number': 118}
>>{'month': datetime.datetime(2019, 9, 1, 0, 0), 'number': 7}
>>{'month': datetime.datetime(2019, 10, 1, 0, 0), 'number': 731}
>>{'month': datetime.datetime(2019, 11, 1, 0, 0), 'number': 514}
>>{'month': datetime.datetime(2019, 12, 1, 0, 0), 'number': 739}
>>{'month': datetime.datetime(2020, 1, 1, 0, 0), 'number': 483}
>>{'month': datetime.datetime(2020, 2, 1, 0, 0), 'number': 921}

2.4 日

from django.db import connection
from django.db.models import Count
# 'year', 'month', 'day', 'hour', 'minute', 'second'

select = {'day': connection.ops.datetime_trunc_sql('day', 'establish', 8)}
result = models.FocusOnRecord.objects.extra(select=select).values('day').annotate(number=Count('id')).order_by("day")[0:9]

for key in result:
 print(key)
 
>>{'day': datetime.datetime(2019, 6, 28, 0, 0), 'number': 1}
>>{'day': datetime.datetime(2019, 6, 29, 0, 0), 'number': 7}
>>{'day': datetime.datetime(2019, 7, 2, 0, 0), 'number': 1}
>>{'day': datetime.datetime(2019, 7, 11, 0, 0), 'number': 3}
>>{'day': datetime.datetime(2019, 7, 20, 0, 0), 'number': 32}
>>{'day': datetime.datetime(2019, 7, 21, 0, 0), 'number': 2}
>>{'day': datetime.datetime(2019, 7, 29, 0, 0), 'number': 3}
>>{'day': datetime.datetime(2019, 7, 31, 0, 0), 'number': 10}
>>{'day': datetime.datetime(2019, 8, 1, 0, 0), 'number': 20}

2.5 時

from django.db import connection
from django.db.models import Count
# 'year', 'month', 'day', 'hour', 'minute', 'second'

select = {'hour': connection.ops.datetime_trunc_sql('hour', 'establish', 8)}
result = models.FocusOnRecord.objects.extra(select=select).values('hour').annotate(number=Count('id')).order_by("hour")[0:9]

for key in result:
 print(key)
 
>>{'hour': datetime.datetime(2019, 6, 28, 17, 0), 'number': 1}
>>{'hour': datetime.datetime(2019, 6, 29, 9, 0), 'number': 6}
>>{'hour': datetime.datetime(2019, 6, 29, 10, 0), 'number': 1}
>>{'hour': datetime.datetime(2019, 7, 2, 14, 0), 'number': 1}
>>{'hour': datetime.datetime(2019, 7, 11, 14, 0), 'number': 2}
>>{'hour': datetime.datetime(2019, 7, 11, 15, 0), 'number': 1}
>>{'hour': datetime.datetime(2019, 7, 20, 11, 0), 'number': 24}
>>{'hour': datetime.datetime(2019, 7, 20, 12, 0), 'number': 3}
>>{'hour': datetime.datetime(2019, 7, 20, 13, 0), 'number': 2}

2.6 分

from django.db import connection
from django.db.models import Count
# 'year', 'month', 'day', 'hour', 'minute', 'second'

select = {'minute': connection.ops.datetime_trunc_sql('minute', 'establish', 8)}
result = models.FocusOnRecord.objects.extra(select=select).values('minute').annotate(number=Count('id')).order_by("minute")[0:9]

for key in result:
 print(key)
 
>>{'minute': datetime.datetime(2019, 6, 28, 17, 22), 'number': 1}
>>{'minute': datetime.datetime(2019, 6, 29, 9, 6), 'number': 4}
>>{'minute': datetime.datetime(2019, 6, 29, 9, 39), 'number': 1}
>>{'minute': datetime.datetime(2019, 6, 29, 9, 41), 'number': 1}
>>{'minute': datetime.datetime(2019, 6, 29, 10, 4), 'number': 1}
>>{'minute': datetime.datetime(2019, 7, 2, 14, 57), 'number': 1}
>>{'minute': datetime.datetime(2019, 7, 11, 14, 48), 'number': 1}
>>{'minute': datetime.datetime(2019, 7, 11, 14, 54), 'number': 1}
>>{'minute': datetime.datetime(2019, 7, 11, 15, 40), 'number': 1}

2.7 秒

from django.db import connection
from django.db.models import Count
# 'year', 'month', 'day', 'hour', 'minute', 'second'

select = {'second': connection.ops.datetime_trunc_sql('second', 'establish', 8)}
result = models.FocusOnRecord.objects.extra(select=select).values('second').annotate(number=Count('id')).order_by("second")[0:9]

for key in result:
 print(key)

>>{'second': datetime.datetime(2019, 6, 28, 17, 22, 54), 'number': 1}
>>{'second': datetime.datetime(2019, 6, 29, 9, 6, 1), 'number': 1}
>>{'second': datetime.datetime(2019, 6, 29, 9, 6, 18), 'number': 1}
>>{'second': datetime.datetime(2019, 6, 29, 9, 6, 35), 'number': 1}
>>{'second': datetime.datetime(2019, 6, 29, 9, 6, 36), 'number': 1}
>>{'second': datetime.datetime(2019, 6, 29, 9, 39, 30), 'number': 1}
>>{'second': datetime.datetime(2019, 6, 29, 9, 41, 17), 'number': 1}
>>{'second': datetime.datetime(2019, 6, 29, 10, 4, 15), 'number': 1}
>>{'second': datetime.datetime(2019, 7, 2, 14, 57, 56), 'number': 1}

到此這篇關(guān)于Django中日期時間型字段進(jìn)行年月日時分秒分組統(tǒng)計的文章就介紹到這了,更多相關(guān)Django 日期時間型字段統(tǒng)計內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

凌海市| 大荔县| 武陟县| 土默特右旗| 虞城县| 大荔县| 合川市| 佛山市| 河曲县| 江安县| 尤溪县| 龙井市| 泰和县| 房产| 花莲县| 荣昌县| 正镶白旗| 清水河县| 九龙县| 德兴市| 惠州市| 台中县| 招远市| 刚察县| 邮箱| 北宁市| 南昌县| 红安县| 丹巴县| 来宾市| 枝江市| 肥东县| 拜泉县| 满城县| 忻州市| 葵青区| 汉中市| 赫章县| 屏南县| 峡江县| 区。|