【问题标题】:Filter sqlalchemy sqlite datetime column by date按日期过滤 sqlalchemy sqlite datetime 列
【发布时间】:2020-08-25 02:42:41
【问题描述】:

我在数据库(命名为 TestBase)中有一个日期时间列,如下所示:

INDEX   DateTimeColumn
...     ...
1241    2010-07-26 07:04:05 
1242    2010-07-26 07:04:07 
1243    2010-07-26 07:04:12 
1244    2010-07-27 10:59:53

我想获得列中所有独特的日子。

但是,在 sqlalchemy 中使用 distinct 函数:distinct(TestBase.DateTimeColumn) 不起作用。因为它需要考虑时间戳内的时间,并认为每个条目都是唯一的。

如何编写一个忽略时间戳中的时间而只返回唯一日期列表的查询?

【问题讨论】:

  • 您使用的是 ORM 还是 Core API?
  • 我正在使用 ORM。

标签: python database sqlite sqlalchemy


【解决方案1】:

使用数据库的DATE 函数将日期时间截断为日期。通过sqlalchemy.sql.func访问DATE函数:

from sqlalchemy import sql

q = session.query(sql.func.date(MyModel.datetimecolumn))

【讨论】:

    猜你喜欢
    • 2016-04-23
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多