From: <no...@so...> - 2002-12-13 00:24:18
|
Bugs item #653044, was opened at 2002-12-13 01:24 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=116528&aid=653044&group_id=16528 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Ondrej Palkovsky (ondrap) Assigned to: Nobody/Anonymous (nobody) Summary: DateTimeDelta does not work if >= 1 day Initial Comment: I think it is self-describing. It works for Delta up to 1 day though. The following works: c.execute("insert into test values (cast(%s as interval))",(t.seconds,)) so I guess something like: if isinstance(value,DateTime.DateTimeDeltaType): return 'cast(%s as interval)' % value.seconds in the quotation function would do it. Problem reproduction: ondra2=> create table test (a interval); CREATE ondra2=> \q ondra@linux:~$ python >>> from pyPgSQL import PgSQL >>> a = PgSQL.connect('::ondra2') >>> c = a.cursor() >>> from mx import DateTime >>> t = DateTime.Parser.TimeDeltaFromString('2 days') >>> t <DateTimeDelta object for '2:00:00:00.00' at 82aba40> >>> c.execute("insert into test values (%s)",(t,)) Traceback (most recent call last): File "<stdin>", line 1, in ? File "/usr/lib/python2.2/site-packages/pyPgSQL/PgSQL.py", line 2671, in execute raise OperationalError, msg libpq.OperationalError: ERROR: Bad interval external representation '2:00:00:00.00' ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=116528&aid=653044&group_id=16528 |