【发布时间】:2016-08-02 14:43:44
【问题描述】:
我想将带有日期时间对象的 values_list 字段转换为日期对象。
.values_list('time_finished', flat=True)
给我“2016-03-22T18:52:53.486Z”,我想要的是 "2016-03-22"
谢谢!
【问题讨论】:
标签: python django python-3.x django-views django-rest-framework
我想将带有日期时间对象的 values_list 字段转换为日期对象。
.values_list('time_finished', flat=True)
给我“2016-03-22T18:52:53.486Z”,我想要的是 "2016-03-22"
谢谢!
【问题讨论】:
标签: python django python-3.x django-views django-rest-framework
你可以使用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>>
【讨论】:
您可以使用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)]
【讨论】: