如何使用 SQLAlchemy 按日期时间查询
在使用SQLAlchemy进行按日期时间查询时,你需要使用SQLAlchemy的查询表达式,并结合Python的datetime
模块来构造你想要查询的日期时间范围。以下是一个示例,假设你有一个名为my_table
的表,它有一个名为created_at
的列,该列的类型是DateTime
:
from datetime import datetime, timedelta
from sqlalchemy import create_engine, Column, DateTime, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 定义模型
Base = declarative_base()
class MyTable(Base):
__tablename__ = 'my_table'
id = Column(Integer, primary_key=True)
created_at = Column(DateTime)
# 连接数据库
engine = create_engine('sqlite:///my_database.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
# 查询特定日期时间范围内的记录
start_date = datetime.now() - timedelta(days=1) # 1天前
end_date = datetime.now() # 到现在
# 使用session的query方法进行查询
results = session.query(MyTable).filter(MyTable.created_at >= start_date).filter(MyTable.created_at <= end_date).all()
# 输出查询结果
for result in results:
print(result.id, result.created_at)
在这个例子中,我们首先导入了必要的模块,定义了数据库表模型,并创建了与数据库的连接。然后我们设置了想要查询的时间范围,并使用session.query
方法来获取该时间范围内的记录。最后,我们遍历并打印出查询结果。
评论已关闭