C M wrote:
Thanks to you both--using the || did the trick, and I can try the other
approaches mentioned as well. In Python Igor's suggestion was just:
amount = "+1"
cur.execute('SELECT string, d FROM test WHERE d >= date("now", ? || ? || "
days")',amount)
You will might be better off building the entire argument string in
Python and then binding that string to a single argument to the date
function in the SQL. You can then use the same query to do offsets in
hours, days, months, or years for example. It will probably be slightly
faster as well since SQLite will be parsing an executing a simpler SQL
statement.
You should also invert your string quoting in Python. SQL uses single
quotes for literal values, and double quotes for identifiers (such as
table and column names). SQLite accepts double quotes around literals as
an extension, but it can get you into trouble if you have a column with
the same name as your literal value. In that case it will be interpreted
as the column name. You might even want to use Python's triple quotes to
allow both single and double quotes to be used in the SQL string itself.
Note, the plus character in '+1 days' is not needed. It is simply a sign
character, it does not signify addition. You only need the sign if you
want a negative offset.
amount = 1
unit = "days"
offset = str(amount) + " " + unit
cur.execute("SELECT string, d FROM test WHERE d >= date('now', ?)", offset)
HTH
Dennis Cote
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------