you can emit that exact SQL using func.abs() in conjunction with the extract()
function, which is a standalone SQLA construct.
from sqlalchemy import func, extract
func.abs(extract('epoch', header.udatetime - self.header.udatetime))
On Jan 27, 2011, at 4:21 PM, Petra Clementson wrote:
> hi all,
>
> I've been trying to work out some SQLalchemy code to query two datetime
> columns and choose the one closest in time. I have some code that does this,
> but it requires using PostgreSQL and looks a little messy:
>
> query = query.order_by("ABS(EXTRACT(EPOCH FROM (header.utdatetime -
> :utdatetime_x)))").params(utdatetime_x= self.header.utdatetime)
>
> I've been working on a piece of code that is all SQLalchemy, but I keep
> getting an error that I can't use the absolute value function on an interval
> and casting the interval to Numeric isn't working either:
>
> query = query.order_by(func.abs(cast(Header.utdatetime -
> self.header.utdatetime, Numeric())).asc())
>
>
> any help would be greatly appreciated.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To post to this group, send email to [email protected].
> 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.
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
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.