On 21 October 2010 11:58, Danilo Cicerone <[email protected]> wrote:
> Thanks Simon, but I've the following situation:
>
.
.
.
> The SQL query should be something like that:
>
> select case when dateStart <= '2010-01-21 00:00:00' and dateEnd >=
> '2010-01-21
> 00:00:00' then
> strftime('%s', '2010-01-21 00:00:00') - strftime('%s', dateStart)
> else
> strftime('%s', dateEnd) - strftime('%s', dateStart)
> end
> from t1
> where dateStart >= '2010-01-20 09:00:00' and dateEnd <= '2010-01-21
> 00:00:00';>
>
> this statement doesn't work due the "and dateEnd <= '2010-01-21
> 00:00:00';" that cut out the record.
>
-- Time in seconds of overlap between two time intervals
select case
when dateStart <= p.periodStart and dateEnd >= p.periodEnd then
strftime('%s', p.periodEnd) - strftime('%s',
p.periodStart)
when dateStart <= p.periodStart then
strftime('%s', dateEnd) - strftime('%s', p.periodStart)
when dateEnd >= p.periodEnd then
strftime('%s', p.periodEnd) - strftime('%s', dateStart)
else
strftime('%s', dateEnd) - strftime('%s', dateStart)
end
from t1, ( select '2010-01-20 17:00:00' periodStart, '2010-01-21
22:00:00' periodEnd ) p
where ( dateStart >= p.periodStart AND dateStart <= p.periodEnd ) OR
( dateEnd >= p.periodStart AND dateEnd <= p.periodEnd );
Regards,
Simon
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users