Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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 Postgres视图中的变量?_Python_Postgresql - Fatal编程技术网

Python Postgres视图中的变量?

Python Postgres视图中的变量?,python,postgresql,Python,Postgresql,我在Postgres中有一个视图,它查询一个主表(1.5亿行)并检索前一天的数据(一个返回SELECT ATHEDY的函数;这是使视图尊重分区约束的唯一方法),然后将其与二维表连接。这很好,但如何在Python中循环执行此查询?有没有办法让日期变得动态 for date in date_range('2016-06-01', '2017-07-31'): (query from the view, replacing the date with the date in the loop)

我在Postgres中有一个视图,它查询一个主表(1.5亿行)并检索前一天的数据(一个返回SELECT ATHEDY的函数;这是使视图尊重分区约束的唯一方法),然后将其与二维表连接。这很好,但如何在Python中循环执行此查询?有没有办法让日期变得动态

for date in date_range('2016-06-01', '2017-07-31'):
    (query from the view, replacing the date with the date in the loop)

我的解决方法是将整个视图复制并粘贴为一个巨大的select语句格式字符串,然后在循环中传递日期。这是可行的,但似乎必须有更好的解决方案来利用现有视图或传入将来可能有用的变量。

要在for循环的间隔内逐日循环,可以执行以下操作:

import datetime

initialDate = datetime.datetime(2016, 6, 1)
finalDate = datetime.datetime(2017, 7, 31)

for day in range((finalDate - initialDate).days + 1):
    current = (initialDate + datetime.timedelta(days = day)).date()
    print("query from the view, replacing the date with " + current.strftime('%m/%d/%Y'))
initialDate = datetime.datetime.strptime("06/01/2016", '%m/%d/%Y')
将打印替换为对查询的调用。如果日期是字符串,则可以执行以下操作:

import datetime

initialDate = datetime.datetime(2016, 6, 1)
finalDate = datetime.datetime(2017, 7, 31)

for day in range((finalDate - initialDate).days + 1):
    current = (initialDate + datetime.timedelta(days = day)).date()
    print("query from the view, replacing the date with " + current.strftime('%m/%d/%Y'))
initialDate = datetime.datetime.strptime("06/01/2016", '%m/%d/%Y')

嗨,对不起,我的意思是如何在Postgres中编辑动态视图。我想在Python循环中查询一个视图,因此我从该视图中选择日期等于我的循环中的日期。如果您可以更新您的问题,以包括视图代码以及您期望从中得到的返回类型,也许我可以帮您。