Stephen Chrzanowski <pontia...@gmail.com> 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 sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users