I'm using SA 0.4.3 and PostgreSQL 8.3.1

I'm new to SA, so perhaps I'm doing something wrong or just not
understanding something, but I think SA is trying to treat my timestamps as
intervals in some cases.  If I run the equivalent (select c0 from t0 where
c0 < current_timestamp - interval '1 hour') via psql, it works as expected.
However,

If I run:
#!/usr/bin/python

from datetime import datetime
from sqlalchemy.sql import text
from sqlalchemy import create_engine, MetaData

engine = create_engine('postgres://[EMAIL PROTECTED]/testdb',
encoding='utf-8')
metadata = MetaData(bind=engine)

engine.execute(text("drop table if exists t0"))
engine.execute(text("create table t0(c0 timestamp(0) with time zone)"))
engine.execute(text("insert into t0 values(current_timestamp)"))
engine.execute(text("select c0 from t0 where c0 < :bindArg - interval '1
hour'"), bindArg=datetime.utcnow())


I get:
Traceback (most recent call last):
  File "./saerr.py", line 14, in <module>
    engine.execute(text("select c0 from t0 where c0 < :bindArg - interval '1
hour'"), bindArg=datetime.utcnow())
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line
1214, in execute
    return connection.execute(statement, *multiparams, **params)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line
846, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line
897, in execute_clauseelement
    return self._execute_compiled(elem.compile(dialect=self.dialect,
column_keys=keys, inline=len(params) > 1), distilled_params=params)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line
909, in _execute_compiled
    self.__execute_raw(context)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line
918, in __execute_raw
    self._cursor_execute(context.cursor, context.statement,
context.parameters[0], context=context)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line
962, in _cursor_execute
    self._handle_dbapi_exception(e, statement, parameters, cursor)
  File "/usr/lib/python2.5/site-packages/sqlalchemy/engine/base.py", line
944, in _handle_dbapi_exception
    raise exceptions.DBAPIError.instance(statement, parameters, e,
connection_invalidated=is_disconnect)
sqlalchemy.exceptions.ProgrammingError: (ProgrammingError) invalid input
syntax for type interval: "2008-04-18T15:37:02.235955"
 "select c0 from t0 where c0 < %(bindArg)s - interval '1 hour'" {'bindArg':
datetime.datetime(2008, 4, 18, 15, 37, 2, 235955)}

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to