python - sqlalchemy 通过比较 datetime.now() 和列默认日期进行过滤

标签 python sqlite datetime sqlalchemy

在我的表定义中,我有一列定义如下:

created_date = Column(DateTime, nullable=False, default=datetime.now)

我想在创建日期等于当前日期时查询一个实例(例如,如果它是今天创建的)。

所以我尝试了这样的事情:

res = session.query(Object).filter(datetime.now() == Object.created_date)

它永远不会起作用,因为我猜两个日期是以秒为单位进行比较的,所以它们永远不会相等。然后我试了这个:

res = session.query(Object).filter((datetime.now() - Object.created_date).days < 1)

虽然 (datetime.now() - datetime.now()).days 在 python 中工作,但它在我这里的情况下不起作用。我收到错误消息:“BinaryExpression”对象和“Comparator”对象都没有属性“days”。

那么我应该如何做一个查询来过滤当天创建的实例呢?谢谢!

最佳答案

我怀疑 (datetime.now() - datetime.now()).days 是否有效,因为 datetime.datetime 实例只有名为 day< 的属性 而不是 days。使用 datetime.now().days 会导致 AttributeError: 'datetime.datetime' object has no attribute 'days'

你可以试试这个:

from datetime import timedelta

res = session.query(Object).filter(
    (Object.created_date+timedelta(days=1))>datetime.now())

关于python - sqlalchemy 通过比较 datetime.now() 和列默认日期进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28858791/

相关文章:

python - 选择名称遵循 pandas 中给定模式的 DataFrame 列

Amazon EC2 上的 MySQL 与 SQLite

mysql - 设计一个单元格有多个引用的表格的最佳方法?

c# - 将一天中的时间转换为 .net 中的 fr-CA - 错误的短时间格式字符串?

python - 将 Pandas 数据框乘以字典

Android Socket 创建失败,Telnet 连接正常

python - 无法达到一致性级别 LOCAL_ONE info={required_replicas 1 alive_replicas : 0, 一致性:LOCAL_ONE}

sql - 查询返回具有匹配值的连续行

php - 按每个项目获取最近的日期值组

SQL Server : From 2008 To 2014 :-The data types datetime and time are incompatible in the add operator. 还有其他解决方案吗?