Because of the way my 'date' field is formatted, I've stripped the time element from it, and it seems to work.. here's the SQL:
SELECT cnt, day from ( select count(*) as cnt, julianday( strftime('%Y-%m-%d', date) ) as jul, strftime('%d', date) as day from data, (select 'now' as ref) where jul > julianday( ref, '-7 days') and jul <= julianday(ref) group by jul order by jul ) ; On Mon, Nov 1, 2010 at 3:12 PM, J. Bobby Lopez <j...@jbldata.com> wrote: > Perhaps it has something to do with the format of my date strings in the > date column? > > This is how it's formatted: 2010-11-01 05:36:06 > > > > > On Mon, Nov 1, 2010 at 2:30 PM, J. Bobby Lopez <j...@jbldata.com> wrote: > >> I'm getting some odd results with your second example. It looks like the >> 'cnt' value is not being summed together for each day, and instead I'm >> getting the following: >> >> ... >> 1|31 >> 1|31 >> 1|31 >> 1|31 >> 1|31 >> 1|31 >> 1|31 >> 1|31 >> 1|31 >> 1|01 >> 1|01 >> 1|01 >> 1|01 >> 1|01 >> 1|01 >> 1|01 >> 1|01 >> 1|01 >> >> >> The sql is verbatim, so I'm not sure what's going on..? >> >> >> Bobby >> >> >> On Mon, Nov 1, 2010 at 1:27 PM, Simon Davies < >> simon.james.dav...@gmail.com> wrote: >> >>> On 1 November 2010 16:45, J. Bobby Lopez <j...@jbldata.com> wrote: >>> > Hello all, >>> > >>> > I've been reading >>> http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions, >>> > but I'm having some trouble understanding how I would pull records >>> within a >>> > specific date range (last five days for example). >>> > >>> . >>> . >>> . >>> > CREATE TABLE data ( >>> > id INTEGER PRIMARY KEY, >>> > user_id varchar(30), >>> > date varchar(30), >>> > keywords varchar(1024), >>> > log_files varchar(1024), >>> > script varchar(30), >>> > tracker_ip varchar(30), >>> > user_ip varchar(30) >>> > ); >>> > >>> > >>> > Basically I'd like to get output similar to the following: >>> > >>> > 5|25 >>> > 3|26 >>> > 7|27 >>> > 2|29 >>> > 4|30 >>> > >>> > >>> > These being the number of records logged for each day in the past 7 >>> days, >>> > the days being Oct 25 - Nov 1. >>> > >>> > >>> >>> Something like: >>> SQLite version 3.6.11 >>> Enter ".help" for instructions >>> sqlite> >>> sqlite> >>> sqlite> CREATE TABLE data ( >>> ...> id INTEGER PRIMARY KEY, >>> ...> user_id varchar(30), >>> ...> date varchar(30), >>> ...> keywords varchar(1024), >>> ...> log_files varchar(1024), >>> ...> script varchar(30), >>> ...> tracker_ip varchar(30), >>> ...> user_ip varchar(30) >>> ...> ); >>> sqlite> >>> sqlite> >>> sqlite> insert into data( date ) values( '2010-10-25' ); >>> sqlite> insert into data( date ) values( '2010-10-25' ); >>> sqlite> insert into data( date ) values( '2010-10-26' ); >>> sqlite> insert into data( date ) values( '2010-10-26' ); >>> sqlite> insert into data( date ) values( '2010-10-26' ); >>> sqlite> insert into data( date ) values( '2010-10-27' ); >>> sqlite> insert into data( date ) values( '2010-10-29' ); >>> sqlite> insert into data( date ) values( '2010-10-29' ); >>> sqlite> insert into data( date ) values( '2010-10-30' ); >>> sqlite> insert into data( date ) values( '2010-10-30' ); >>> sqlite> insert into data( date ) values( '2010-10-30' ); >>> sqlite> insert into data( date ) values( '2010-11-01' ); >>> sqlite> insert into data( date ) values( '2010-11-01' ); >>> sqlite> insert into data( date ) values( '2010-11-01' ); >>> sqlite> insert into data( date ) values( '2010-11-02' ); >>> sqlite> insert into data( date ) values( '2010-11-03' ); >>> sqlite> insert into data( date ) values( '2010-11-03' ); >>> sqlite> insert into data( date ) values( '2010-11-05' ); >>> sqlite> >>> sqlite> select cnt, day from ( >>> ...> select count(*) as cnt, >>> ...> julianday( date ) as jul, >>> ...> strftime( '%d', date ) as day >>> ...> from data, (select '2010-10-30' as ref ) >>> ...> where jul > julianday( ref, '-7 days' ) and >>> ...> jul <= julianday( ref ) >>> ...> group by jul >>> ...> order by jul ); >>> 2|25 >>> 3|26 >>> 1|27 >>> 2|29 >>> 3|30 >>> sqlite> select cnt, day from ( >>> ...> select count(*) as cnt, >>> ...> julianday( date ) as jul, >>> ...> strftime( '%d', date ) as day >>> ...> from data, (select '2010-11-02' as ref ) >>> ...> where jul > julianday( ref, '-7 days' ) and >>> ...> jul <= julianday( ref ) >>> ...> group by jul >>> ...> order by jul ); >>> 1|27 >>> 2|29 >>> 3|30 >>> 3|01 >>> 1|02 >>> sqlite> select cnt, day from ( >>> ...> select count(*) as cnt, >>> ...> julianday( date ) as jul, >>> ...> strftime( '%d', date ) as day >>> ...> from data, (select 'now' as ref ) >>> ...> where jul > julianday( ref, '-7 days' ) and >>> ...> jul <= julianday( ref ) >>> ...> group by jul >>> ...> order by jul ); >>> 3|26 >>> 1|27 >>> 2|29 >>> 3|30 >>> 3|01 >>> sqlite> >>> >>> >>> > >>> > Bobby >>> >>> Regards, >>> Simon >>> _______________________________________________ >>> sqlite-users mailing list >>> sqlite-users@sqlite.org >>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users >>> >> >> > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users