SQLiteのdatetimeでローカルタイムゾーンを扱う方法

            iPhoneアプリでSQLiteのdatetimeを使う機会があった。

[sql] CREATE TABLE hoge ( name text, created text );

-- MySQL -- NSERT INTO hoge VALUES ('hoge', now());

INSERT INTO hoge VALUES ('hoge', datetime('now')); [/sql]

これでOK!…と思いきや、datetime('now')だとUTCになるらしい。 日本の端末なら日本時間で、西海岸の端末なら西海岸の時間でみたいな風にしたかった。。。

調べたら、datetimeは 『 'localtime' modifier 』を付けることでローカルタイムになるらしい。

[sql] CREATE TABLE hoge ( name text, created text );

INSERT INTO hoge VALUES ('hoge', datetime('now', 'localtime')); [/sql]

ちなみに、SQLiteにはDATETIME型みたいなのはないので、TEXT型で扱うようにする。 おわり。

参考 http://www.tamandua-webtools.net/sqlite3-date.html