On Mon, 19 Mar 2012 14:45:51 -0700 (PDT), niph...@gmail.com said:

> for every "period", duration is calculated as:
> duration = db.periods.end_time.seconds() -
> db.periods.start_time.seconds()
> 
> now, get a list of all "durations"...
> 
> result = db(db.periods.id>0).select(db.periods.id, duration)

This does not work: every 'duration' is None:

>>> duration = db.t_periods.f_period_end.seconds() -
     db.t_periods.f_period_start.seconds() 
>>> result = db(db.t_periods.id>0).select(db.t_periods.id, duration)
>>> result[0]
<Row {'t_periods': <Row {'update_record': <function <lambda> at
0x923479c>, 't_periods_archive': <gluon.dal.Set object at 0x923924c>,
0x923479c>'id': 40, 'delete_record': <function <lambda> at 0x9234764>}>,
0x923479c>'_extra': <Row
0x923479c>{"(web2py_extract('second',t_periods.f_period_end) -
0x923479c>web2py_extract('second',t_periods.f_period_start))": None}>}>
>>> 

All rows give the same result (None).

I can see that what I need to be doing is calculating the end time in
seconds and subtracting the start time in seconds, but I can't see how to
do that via the DAL.

Back to my original question: is the only way to do this to use
hand-crafted SQL?
-- 
"You can have everything in life you want if you help enough other people
get what they want" - Zig Ziglar. 

Who did you help today?

Reply via email to