On Feb 10, 2010, at 6:52 PM, Bobby Impollonia wrote:

> I am constructing queries involving MSTimeStamp fields in MySQL and am
> being receiving "Incorrect datetime value" warnings even in
> situations where my queries are valid in MySQL.
> 
> How do I modify the following query so that sqlalchemy will accept it
> without warning:
> session.query(MyClass.id).filter(MyClass.timestamp > (func.now() -
> 20000)).first()
> ?
> 
> The generated sql is
> SELECT my_table.id AS my_table_id
> FROM my_table
> WHERE my_table.timestamp > now() - %s
> LIMIT 0, 1
> 
> The warning I get is
> /usr/lib/pymodules/python2.5/sqlalchemy/engine/default.py:123:
> Warning: Incorrect datetime value: '20100209953011.000000' for column
> 'timestamp' at row 1
>  cursor.execute(statement, parameters)
> 
> Why is sqlalchemy even seeing the value '20100209953011.000000', which
> is the outcome of the now() - 20000 operation inside the query?
> 
> I tried changing
> (func.now() -  20000)
> to
> func.timestamp (func.now() -  20000)
> but I still get the same warning.
> 
> If I change 20000 to 200, I don't get warned. Why would this be?
> 
> It works with no warning if I change it to
> session.query(MyClass.id).filter(func.now() - MyClass.timestamp > 
> 20000).first()
> , but that is not an acceptable solution because now MySQL can't use
> my index on MyClass.timestamp.

That warning is not generated by SQLAlchemy so it is not "seeing" it.  
MySQL-python is generating that warning.   You'd have to consult the DBAPI's 
mailing list for help on this one since SQLA just passes your bound values 
straight through - I'm not familiar with what that "20000" might mean in MySQL 
parlance, 20000 seconds ?  no clue.





> 
> I am using SQLA .5.5
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to sqlalch...@googlegroups.com.
> To unsubscribe from this group, send email to 
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.
> 

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

Reply via email to