Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sqlalchemy按日期范围筛选_Python_Django_Python 3.x_Sqlalchemy - Fatal编程技术网

Python Sqlalchemy按日期范围筛选

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

我有两个日期选择器字段,希望用户从日期到结束日期进行选择。我想显示选择的两个日期之间的数据。示例表格日期:2018年2月14日至2018年3月15日。调用函数时,我希望提取并显示这两个日期之间的数据

我只是需要一些查询方面的帮助来实现这一点

我正在使用sqlalchemy从mssql数据库中提取数据

这是我的密码。两个日期选择器分别选择date和selectdate1,然后将其转换为朱利安日期。convert和convert1,我需要一些帮助来完成这个神奇的查询

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,它现在可以工作了。