django 查询集按小时、分钟和秒排序
django querysets order by hour, minute and seconds
我在 models.py 中有日期时间对象:
class Tournament(models.Model):
date = models.DateTimeField('Event time')
但是,锦标赛可能有每日或每周锦标赛的标志(意味着每天或每周重复)。所以我想按日期对我的比赛进行排序,但忽略 年、月 和 日。
我如何按小时、分钟和秒对我的比赛进行排序?可以使用 order_by
还是我必须使用原始 sql?
我正在使用 postgresql 和 django 1.8.
最好的解决方案是使用 Func
:
Tournament.objects.order_by(Func('date', function='"time"')).all()
它是特定于 PostgreSQL 的,因为 "time"(column_name)
是它从 timestamp
中提取时间值的方法之一(使用类似函数的语法进行转换可以得到 time
部分).
我在 models.py 中有日期时间对象:
class Tournament(models.Model):
date = models.DateTimeField('Event time')
但是,锦标赛可能有每日或每周锦标赛的标志(意味着每天或每周重复)。所以我想按日期对我的比赛进行排序,但忽略 年、月 和 日。
我如何按小时、分钟和秒对我的比赛进行排序?可以使用 order_by
还是我必须使用原始 sql?
我正在使用 postgresql 和 django 1.8.
最好的解决方案是使用 Func
:
Tournament.objects.order_by(Func('date', function='"time"')).all()
它是特定于 PostgreSQL 的,因为 "time"(column_name)
是它从 timestamp
中提取时间值的方法之一(使用类似函数的语法进行转换可以得到 time
部分).