django转换.values_list(' datetimefield')到目前为止

时间:2016-04-12 06:51:19

标签: python django python-3.x django-views django-rest-framework

我想将一个带有datetime对象的values_list字段转换为日期对象。

.values_list('time_finished', flat=True)

给了我" 2016-03-22T18:52:53.486Z"我想要的是什么 " 2016年3月22日"

谢谢!

2 个答案:

答案 0 :(得分:4)

您可以使用extra直接运行某些数据库功能,例如使用DATE

queryset = queryset.extra(select={'time_finished_date': 'DATE(time_finished)'}).values_list('time_finished_date', flat=True)

如果从queryset打印SQL查询,它将如下所示:

>>> print(queryset.query)
# SELECT (DATE(time_finished)) AS "time_finished_date" FROM <<tablename>>

答案 1 :(得分:2)

您可以使用datetime.datetime.date() method获取datetime.date对象:

>>> dt = datetime.datetime.now()
>>> dt
datetime.datetime(2016, 4, 12, 15, 54, 48, 401418)
>>> dt.date()
datetime.date(2016, 4, 12)

使用datetime.datetime.strftime获取字符串:

>>> dt.strftime('%Y-%m-%d')
'2016-04-12'
[dt.date() for dt in query.values_list('time_finished', flat=True)]