postgre数据库datetime格式化

 

postgre和mysql、sqlite有些不同,在处理datetime对象格式化问题上没找到官方方法,自己做了一个。

 

  做时间的格式化及聚合:

date_list = models.Article.objects.filter(user=user). \
    extra(select={"y_m_date": "strftime('%%Y/%%m', create_time)"}).values("y_m_date").annotate(c=Count("nid")). \
    values_list("y_m_date", "c").order_by("-y_m_date")

  date_list: <QuerySet [('2018/09', 2), ('2018/07', 6)]>

 

 

def handle_datetime(obj):

    result = []
    for i in obj:
        result.append(i[0].strftime('%Y/%m'))

    return result


date_tupel = models.Article.objects.filter(user=user).values_list('create_time')
date_format = handle_datetime(date_tupel)
date = list(set(date_format))
date_list = []
for i in date:
    n = date_format.count(i)
    date_list.append([i, n])
    
# date_list

date_list: [['2018/09', 2], ['2018/07', 6]]

 

posted @ 2018-09-20 18:46  web123  阅读(653)  评论(0)    收藏  举报