Re: [sqlite] unable to use date fields in sqlite

2019-07-23 Thread D Burgess
Note https://www.sqlite.org/datatype3.html says:
"Applications can chose to store dates and times in any of these
formats and freely convert between formats using the built-in date and
time functions."
This is partially true. The date and time functions will optionally
parse 'a timezone indicator of the form "[+-]HH:MM" or just "Z"'.
The same functions will not create this optional form. i.e. strftime
is missing '%z' as a conversion specifier.
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] unable to use date fields in sqlite

2019-07-23 Thread nomad
On Tue Jul 23, 2019 at 04:41:59PM +0200, Andreas Kretzer wrote:
> Am 23.07.2019 um 16:22 schrieb Steve Leonard:
> >
> > 4)I have tried several combinations of creating a new field
> > of type numeric, blob, real, and integer and then tried to update

If you want to work with date *strings* of the form '-mm-dd' you
probably want to use TEXT.

> > 3) I want to select all records where myfdt is between 11/05/2011 and
> > 12/30/2011 have had no success
> > Could someone please post the correct sql statement to do this?
> >
> > queries like this give no results:
> >  select * from mytable
> > where myfdt > '11/06/2011'
> > and myfdt < '04/13/2018'

If you have modified your data to be -mm-dd then your queries
should also be in that format:

SELECT * FROM mytable
WHERE myfdt > '2011-11-06'
AND myfdt < '2018-04-13'

-- 
Mark Lawrence
___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] unable to use date fields in sqlite

2019-07-23 Thread Andreas Kretzer
Hi Steve,

beside what I said in my last statement, you should also
have a look at

https://www.sqlite.org/datatype3.html
https://www.sqlite.org/lang_datefunc.html

This may help you to understand, how SQLite handles specific
data types, that might be understood (or at least be handled)
different than in other DB engines.

Andreas

Am 23.07.2019 um 16:22 schrieb Steve Leonard:
>
> 1) I imported a new table using dbbrowser for sqlite from a csv file
> one of the fields is named myfdat and the first record contains
> '12/01/2011'
>
> 2) the import created a table with the field myfdt as type text and
> the value matches the csv file
>
> 3) I want to select all records where myfdt is between 11/05/2011 and
> 12/30/2011 have had no success
> Could someone please post the correct sql statement to do this?
>
> queries like this give no results:
>  select * from mytable
> where myfdt > '11/06/2011'
> and myfdt < '04/13/2018'
>
> 4)I have tried several combinations of creating a new field
> of type numeric, blob, real, and integer and then tried to update
> this new field using several date functions, among them:
> update mytable
> set myfdt =
>  substr(myfdt, 7) || "-" || substr(myfdt,4,2)  || "-" || substr(myfdt,
> 1,2)
> the sql ran ok, but the data in the new field is in the -dd-mm format
>
> depending on which combination I used, I get either no results
> or I get wrong answers because a date like 12/04/2011 is
> treat like it is April 12 instead of December 4th.
>
> Thank you.
> Steve
>
> ___
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


 

___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] unable to use date fields in sqlite

2019-07-23 Thread Andreas Kretzer
Am 23.07.2019 um 16:22 schrieb Steve Leonard:
>
> 1) I imported a new table using dbbrowser for sqlite from a csv file
> one of the fields is named myfdat and the first record contains
> '12/01/2011'
>
> 2) the import created a table with the field myfdt as type text and
> the value matches the csv file
>
> 3) I want to select all records where myfdt is between 11/05/2011 and
> 12/30/2011 have had no success
> Could someone please post the correct sql statement to do this?
>
> queries like this give no results:
>  select * from mytable
> where myfdt > '11/06/2011'
> and myfdt < '04/13/2018'
>
> 4)I have tried several combinations of creating a new field
> of type numeric, blob, real, and integer and then tried to update
> this new field using several date functions, among them:
> update mytable
> set myfdt =
>  substr(myfdt, 7) || "-" || substr(myfdt,4,2)  || "-" || substr(myfdt,
> 1,2)
> the sql ran ok, but the data in the new field is in the -dd-mm format
You are basically on a "good" way - just swap day and month field
(-mm-dd)
and you're done. This is still a string though ...
update mytable
    set myfdt =
 substr(myfdt, 7) || "-" || substr(myfdt,1,2)  || "-" ||
substr(myfdt, 4,2)
>
> depending on which combination I used, I get either no results
> or I get wrong answers because a date like 12/04/2011 is
> treat like it is April 12 instead of December 4th.
If you want to deal with dates like this, you must "order" the parts of
that string in descending order!

Andreas
>
> Thank you.
> Steve
>
> ___
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


 

___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


[sqlite] unable to use date fields in sqlite

2019-07-23 Thread Steve Leonard


1) I imported a new table using dbbrowser for sqlite from a csv file
one of the fields is named myfdat and the first record contains '12/01/2011'

2) the import created a table with the field myfdt as type text and the 
value matches the csv file


3) I want to select all records where myfdt is between 11/05/2011 and 
12/30/2011 have had no success

Could someone please post the correct sql statement to do this?

queries like this give no results:
 select * from mytable
where myfdt > '11/06/2011'
and myfdt < '04/13/2018'

4)I have tried several combinations of creating a new field
of type numeric, blob, real, and integer and then tried to update
this new field using several date functions, among them:
update mytable
set myfdt =
 substr(myfdt, 7) || "-" || substr(myfdt,4,2)  || "-" || substr(myfdt, 1,2)
the sql ran ok, but the data in the new field is in the -dd-mm format

depending on which combination I used, I get either no results
or I get wrong answers because a date like 12/04/2011 is
treat like it is April 12 instead of December 4th.

Thank you.
Steve

___
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users