??
2015-12-30 2:56 GMT+01:00 Richard Hipp <drh at sqlite.org>:

> On 12/29/15, Cecil Westerhof <cldwesterhof at gmail.com> wrote:
> > I first had the following table:
> > CREATE  TABLE simpleLog (
> >    datetime    TEXT NOT NULL PRIMARY KEY DEFAULT CURRENT_TIMESTAMP,
> >    description TEXT NOT NULL
> > )
> >
> > ?But datetime then takes 19 bytes. I understood you can also use an
> Integer
> > or Real and that this should be more efficient. At the moment I have the
> > following (I do not expect more as one record in a second):
> > CREATE  TABLE simpleLog (
> >    datetime    INT  NOT NULL PRIMARY KEY DEFAULT (strftime('%s')),
> >    description TEXT NOT NULL
> > )
> >
> > And a select is then done by (in my select minute is precision enough):
> > SELECT   strftime('%Y-%m-%d %H:%M', datetime, 'unixepoch', 'localtime')
> as
> > datetime
> > ,        description
> > FROM     simpleLog
> > ORDER BY datetime DESC
> >
> > Is this a good way to go, or is there a better way?
>
> What you have should work well.
>
> If you store the date/times as a floating-point Julian Day Number, you
> can omit the 'unixepoch' on query.  Use julianday('now') instead of
> strftime('%s','now') on the DEFAULT.  That seems a little simpler to
> me, and you get millisecond resolution on the date/times instead of
> just second resolution.  But the unix-time format is more familar to
> many programmers, and can be stored in 4 bytes instead of 8.
>

?A resolution of one second is more as enough in this case and Integer is
more efficient as Real. So that is why I choose this solution. If I need a
finer resolution I always can redefine?

?the table. Thanks for the feedback.

-- 
Cecil Westerhof

Reply via email to