Alexey Pechnikov wrote:
>
> There is problem for select one row by time - we must use query
> select * from events where time || =julianday('2008-06-16 23:59:59.999');
> and index is not used for this query.
> Maybe patch http://www.sqlite.org/cvstrac/chngview?cn=5215
> resolved problem but I'm not sure.
There is no problem with this except that it is usually unreliable to do
equality comparisons with floating point data such as julian day numbers.
When you say "select one row by time" do you mean that there can only be
one row in each millisecond period, or do you really mean that you want
all the rows within that one millisecond period, or perhaps you only
want the first row in that millisecond period.
In any case, the secret is to know what your required time resolution
is, and use a normal range query to select rows using the start and end
times of that period. For a one millisecond long period you can use:
select * from events
where time between julianday('2008-06-16 23:59:59.999')
and julianday('2008-06-16 23:59:59.999') + 1.0/(86400000)
or
select * from events
where time between julianday('2008-06-16 23:59:59.999')
and julianday('2008-06-17 00:00:00.000')
HTH
Dennis Cote
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users