【问题标题】:django convert .values_list('datetimefield') to datedjango 将 .values_list('datetimefield') 转换为日期
【发布时间】: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


    【解决方案1】:

    你可以使用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>>
    

    【讨论】:

      【解决方案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)]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-01
        • 1970-01-01
        • 2012-01-28
        • 2013-05-08
        • 1970-01-01
        • 1970-01-01
        • 2020-06-04
        相关资源
        最近更新 更多