Stephen Chrzanowski <[email protected]> wrote:
> I live in GMT-5 (America/Toronto). Current time is 8:06am, which should be
> 13:06Z. However, according to this:
>
> select datetime('now','localtime'),datetime('now','utc');
> datetime('now','localtime') datetime('now','utc')
> 2011-12-20 08:05:24 2011-12-20 18:05:24
You misunderstand how modifiers work. datetime('now'), with no modifier,
produces a string reflecting UTC time. 'localtime' modifier assumes that the
string to the left of it represents time in UTC, and converts it to local time
- so far so good. 'utc' does the reverse - it assumes that the string to the
left is in local time, and converts it to UTC. But since 'now' is already in
UTC, you effectively apply the time zone bias twice - that's how you end up
with 10 hours difference.
> One thing I JUST tried now is the following:
>
> select datetime('now','localtime'),datetime('now','localtime','utc');
> datetime('now','localtime') datetime('now','localtime','utc')
> 2011-12-20 08:10:43 2011-12-20 13:10:43
Naturally, since 'localtime' and 'utc' do the exact opposite adjustments,
datetime('now','localtime','utc') is equivalent to datetime('now'). It's like
being surprised that -(-1) == 1
--
Igor Tandetnik
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users