Python按日期从SQL表中选择

问题描述 投票:0回答:2

我尝试在给定的时间范围内从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())

''任何帮助深表感谢。谢谢。

python sql python-3.x psycopg2
2个回答
0
投票

我建议您在sqlalchemy中使用熊猫。它很容易地帮助通过SQL使用pandas

尝试一下

pd.read_sql(query_str, connection) 


0
投票

您颠倒了通常的事情顺序。请尝试:

query="""SELECT * 
FROM public.scanning_lidar_ver2
WHERE timestamp >= %(date_start)s AND timestamp <= %(date_end)s
ORDER BY timestamp ASC, scan_id ASC, range ASC
"""
© www.soinside.com 2019 - 2024. All rights reserved.