| From: | Graeme Gemmill <graeme(at)gemmill(dot)name> | 
|---|---|
| To: | pgsql-sql(at)lists(dot)postgresql(dot)org | 
| Subject: | Passinf field name | 
| Date: | 2018-11-03 17:40:53 | 
| Message-ID: | 12a51f95-7c81-a63d-7327-460044459007@gemmill.name | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-sql | 
Help please: Trying to construct a query where a field name has to be 
passed.
Database wbdata has a field “date timestamp with timezone”.
cursor.execute("SELECT * FROM wbdata ORDER BY date;")
works.
cursor.execute("SELECT * FROM wbdata WHERE date > %s", (starttime,))
works.
I read in your FAQs that I have to use psycopg2.sql to pass a field name 
into the query, so to select a subset of wbdata where date is > 
startdate and the output is sorted by date, I tried
cursor.execute(
sql.SQL("SELECT * FROM wbdata ORDER BY %s WHERE date > %%s" % 
[sql.Identifier("date")], [starttime]))
which gives me an error:
TypeError: __init__() takes 2 positional arguments but 3 were given
What is a correct formulation please?
Thank you
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jonathan S. Katz | 2018-11-03 17:47:17 | Re: Passinf field name | 
| Previous Message | Joe Conway | 2018-10-16 12:36:44 | Re: array problem with double quotes |