首页 > 解决方案 > Python 按日期从 SQL 表中选择

问题描述

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

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

标签: pythonsqlpython-3.xpsycopg2

解决方案


值得注意的是,ORDER BY子句总是出现在语句的末尾SELECT。你只需要在你ORDER BY的.WHEREquery

如果您的列名是正确的,我猜您的查询的其余部分看起来没有错误!祝你好运!

我怀疑你不能使用df1= pd.DataFrame(crsr.fetchall()). 尝试:

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

推荐阅读