Re: [sqlite] how to insert and select a date column

2007-03-01 Thread Dennis Cote

Rafi Cohen wrote:

Just another small question to complete this subject: in case of
prepared insert statements, assuming the date is stored as string as in
your example, do I use sqlite3_bind_text with a variable pointing to a
string containing the date I want to insert? In other words, is this a
string just like any other string I insert into the table?

  
Yes, it is a normal string as far as sqlite is concerned. It is only you 
and the date and time functions that interpret it as a date.


HTH
Dennis Cote


-
To unsubscribe, send email to [EMAIL PROTECTED]
-



Re: [sqlite] how to insert and select a date column

2007-02-28 Thread Dennis Cote

Rafi Cohen wrote:
 
Hi, I apologize in advance for the probably very basic question as I'm a

newbie to sqlite and integrating sql in C applications.
One of my tables in my database requires a date column. I understand
from a tutorial not related to C/C++ api that insering date columns is
not trivial and triggers need to be used.
As I am not knowledgeable about triggers, I would like to ask how can I
insert a date column in a C application and later retrieve this column
or compare it with current date in a select statement?
I need to insert just any date in this column and not only the current
date.
If somebody can send me an example off list to implement this, I'll much
appreciate it.
Thanks, Rafi.

  

Rafi,

SQLite does not support SQL standard date and time types. It does 
however have a very flexible set of date and time functions that use 
strings (i.e. -MM-DD and/or HH:MM:SS etc), integer numbers (i.e. 
unix epoch times, seconds since 1970-01-01), or floating point numbers 
(i.e julian day numbers) which can all be stored in the database. These 
function also allow these formats to be easily converted from one type 
to another, in particular, from integer to string or floating point to 
string for display. These numeric formats make date comparisons very 
simple. For more information see 
http://www.sqlite.org/cvstrac/wiki?p=DateAndTimeFunctions


Once you have decided how you want to store your dates you can insert 
them easily using a default value for your column or supplying a date in 
the required format. Lets assume you decide to store strings since they 
are human readable, even if somewhat inefficient from a storage point of 
view.


   create table t (id, data, created default current_date);

   insert into t (id, data) values (1, 'test');
   insert into t (id, data) values (2, 'more');

   select created from t;
   2007-02-28
   2007-02-28

You can also provide an explicit value that overrides the default value 
when you add a record.


   insert into t values (3, 'explicit', '2007-02-14');
   insert into t values (3, 'explicit', date('now', '+2 days'));

And you can update these dates using the date and time functions

   update t set created = date(created, '-1 month') where id = 2;

Finally you can use the date and time functions to convert the dates for 
display.


   select created, julianday(created) from t;

HTH
Dennis Cote

-
To unsubscribe, send email to [EMAIL PROTECTED]
-



[sqlite] how to insert and select a date column

2007-02-27 Thread Rafi Cohen
 
Hi, I apologize in advance for the probably very basic question as I'm a
newbie to sqlite and integrating sql in C applications.
One of my tables in my database requires a date column. I understand
from a tutorial not related to C/C++ api that insering date columns is
not trivial and triggers need to be used.
As I am not knowledgeable about triggers, I would like to ask how can I
insert a date column in a C application and later retrieve this column
or compare it with current date in a select statement?
I need to insert just any date in this column and not only the current
date.
If somebody can send me an example off list to implement this, I'll much
appreciate it.
Thanks, Rafi.