下記のように標準のSQLiteDatabaseライブラリのインサートメソッドを使うと、
ContentValuesvalues = new ContentValues(); values.put("datetime", "datetime('now', 'localtime')"); db.insert("tablename", null, values);
datetime('now', 'localtime')がそのまま文字列として保存されてしまいます。
(SQLiteには日付のデータ型は存在しないためdatetimeカラムはTEXT型)
おそらくライブラリがString型の変数に対して " " で囲ってSQLを発行するためと思われます。
回避策として、
String sql = "INSERT INTO tablename" + "(datetime) " + "VALUES(datetime('now', 'localtime'));"; db.execSQL(sql);
といった形で直接SQLを記述して実行するとうまくいきました。
なんだか納得行かないのでメモ書き。
なんだか納得行かないのでメモ書き。