python按日期从sql表中选择

q7solyqu  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(353)

我尝试在给定的时间范围内从pgadmin上的表下载数据。我有下面的代码,但它不工作,我不知道为什么

ts, te=df['Timestamp'].min(), df['Timestamp'].max()

connection=psycopg2.connect('dbname=dbname user=user '
                        'password=password host=IP')
print(r'Connection to database is successful')
crsr=connection.cursor()
query="""SELECT * 
FROM public.scanning_lidar_ver2
ORDER BY timestamp ASC, scan_id ASC, range ASC
WHERE timestamp >= %(date_start)s AND timestamp <= %(date_end)s
"""
crsr.execute(query,
             {'date_start' : ts,
              'date_end':te})
df1= pd.DataFrame(crsr.fetchall())

“非常感谢您的帮助。谢谢。

izkcnapc

izkcnapc1#

值得注意的是 ORDER BY 从句总是出现在句末 SELECT 声明。你只需要交换一下 ORDER BY 以及 WHERE 你心中的原因 query .
如果您的列名是正确的,我猜您的查询的其余部分看起来没有bug!祝你好运!
我怀疑你不能用 df1= pd.DataFrame(crsr.fetchall()) . 尝试:

exq=crsr.execute(query,
             {'date_start' : ts,
              'date_end':te})
df1=pd.DataFrame(exq.fetchall())
dpiehjr4

dpiehjr42#

我建议你用Pandas炼金术。它很容易帮助使用sql
试试这个

pd.read_sql(query_str, connection)

相关问题