python按日期从sql表中选择

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

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

  1. ts, te=df['Timestamp'].min(), df['Timestamp'].max()
  2. connection=psycopg2.connect('dbname=dbname user=user '
  3. 'password=password host=IP')
  4. print(r'Connection to database is successful')
  5. crsr=connection.cursor()
  6. query="""SELECT *
  7. FROM public.scanning_lidar_ver2
  8. ORDER BY timestamp ASC, scan_id ASC, range ASC
  9. WHERE timestamp >= %(date_start)s AND timestamp <= %(date_end)s
  10. """
  11. crsr.execute(query,
  12. {'date_start' : ts,
  13. 'date_end':te})
  14. df1= pd.DataFrame(crsr.fetchall())

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

izkcnapc

izkcnapc1#

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

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

dpiehjr42#

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

  1. pd.read_sql(query_str, connection)

相关问题