久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:161日期:2024-09-17 10:41:04

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

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

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

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

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

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’)

解釋說(shuō)明下:

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

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

2.2 年

from django.db import connectionfrom 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 connectionfrom 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 connectionfrom 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 時(shí)

from django.db import connectionfrom 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 connectionfrom 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 connectionfrom 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中日期時(shí)間型字段進(jìn)行年月日時(shí)分秒分組統(tǒng)計(jì)的文章就介紹到這了,更多相關(guān)Django 日期時(shí)間型字段統(tǒng)計(jì)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 牟定县| 沙坪坝区| 育儿| 乾安县| 怀安县| 灵丘县| 通城县| 赫章县| 天峨县| 分宜县| 伊金霍洛旗| 雅江县| 红安县| 紫阳县| 天峨县| 呼图壁县| 西城区| 镇坪县| 信丰县| 新竹市| 嘉善县| 岳阳市| 棋牌| 图片| 通河县| 济宁市| 任丘市| 淮南市| 太湖县| 井冈山市| 桐柏县| 永仁县| 融水| 桃园县| 乌鲁木齐县| 昌平区| 平山县| 名山县| 芦山县| 杭锦后旗| 民丰县|