On 21 October 2010 11:58, Danilo Cicerone <cyds...@gmail.com> 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
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to