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 -~----------~----~----~----~------~----~------~--~---