Python Sqlalchemy按日期范围筛选
我有两个日期选择器字段,希望用户从日期到结束日期进行选择。我想显示选择的两个日期之间的数据。示例表格日期:2018年2月14日至2018年3月15日。调用函数时,我希望提取并显示这两个日期之间的数据 我只是需要一些查询方面的帮助来实现这一点 我正在使用sqlalchemy从mssql数据库中提取数据 这是我的密码。两个日期选择器分别选择date和selectdate1,然后将其转换为朱利安日期。convert和convert1,我需要一些帮助来完成这个神奇的查询Python Sqlalchemy按日期范围筛选,python,django,python-3.x,sqlalchemy,Python,Django,Python 3.x,Sqlalchemy,我有两个日期选择器字段,希望用户从日期到结束日期进行选择。我想显示选择的两个日期之间的数据。示例表格日期:2018年2月14日至2018年3月15日。调用函数时,我希望提取并显示这两个日期之间的数据 我只是需要一些查询方面的帮助来实现这一点 我正在使用sqlalchemy从mssql数据库中提取数据 这是我的密码。两个日期选择器分别选择date和selectdate1,然后将其转换为朱利安日期。convert和convert1,我需要一些帮助来完成这个神奇的查询 def bydate_displ
def bydate_display(request):
if "selectdate" in request.POST:
if "selectdate1" in request.POST:
if "selectaccount" in request.POST:
selected_date = request.POST["selectdate"]
selected_date1 = request.POST["selectdate1"]
selected_acc = request.POST["selectaccount"]
if selected_date==selected_date:
if selected_date1==selected_date1:
if selected_acc==selected_acc:
convert=datetime.datetime.strptime(selected_date, "%Y-%m-%d").toordinal()
convert1=datetime.datetime.strptime(selected_date1, "%Y-%m-%d").toordinal()
engine=create_engine('mssql+pymssql://username:password@1hostname /db')
connection=engine.connect()
metadata=MetaData()
fund=Table('gltrxdet',metadata,autoload=True,autoload_with=engine)
rate=Table('gltrx_all',metadata,autoload=True,autoload_with=engine)
stmt=select ([fund.columns.account_code,fund.columns.description,fund.columns.nat_balance,fund.columns.rate_type_home,rate.columns.date_applied,rate.columns.date_entered,fund.columns.journal_ctrl_num,rate.columns.journal_ctrl_num])
#stmt = select([fund, rate]).where (and_(fund.columns.journal_ctrl_num==rate.columns.journal_ctrl_num))
stmt=stmt.where(and_ (rate.columns.journal_ctrl_num==fund.columns.journal_ctrl_num,fund.columns.account_code==selected_acc,rate.columns.date_applied==convert,rate.columns.date_applied==convertconvert1))
#stmt=stmt.where(or_(rate.columns.date_applied==convert,rate.columns.date_entered==convert1))
results=connection.execute(stmt).fetchall()
return render(request,'bydatedisplay.html',locals())
你能给我们一些你尝试过的代码的例子吗?你得到的结果是什么?或者你被卡在哪里?考虑把那些嵌套的if语句组合到一个if语句中,使用<代码>和操作:<代码>请求中的“StastDead”,在Restest.PoST和……:<代码>中的“SeltDATE1”。你的缩进也消失了;如果
“selectaccount”
未在POST中,则在分配前将使用所有变量<代码>如果选择的日期==选择的日期:只是噪音。最后,您是在寻找rate.columns.date\u applicated.between(convert,convert1)
?谢谢,是的,我正在查找rate.columns.date\u applicated.between(convert,convert1)。我已经应用了它,但只显示第一个选定日期的结果。感谢堆lljja Everila,它现在可以工作了。