私はDATETIME DEFAULT (datetime('now','localtime'))
があなたが望むことを行い、それは/ 2017-01-12 07:33:10のように保存されています。コメント文のCOLUMN_DATETIME +「DATETIMEのDEFAULT(日時( '今'、 'localtimeの')))の一部を1として
public void onCreate(SQLiteDatabase db) {
String query = "CREATE TABLE " + TABLE_BLOCKEDSMS + " (" +
COLUMN_BLOCKEDSMS + " TEXT," +
COLUMN_DATETIME + "DATETIME DEFAULT (datetime('now','localtime')));";
db.execSQL(query);
}
すなわち
、次のようにが説明されています -
COLUMN_DATETIMEはDATETIMEカラム(SQLiteのリジッドタイプDatatypes In SQLite Version 3を有していないことに注意)の一種で、列の名前である。DEFAULTは使用するデフォルト値を示します(オプション)。
値が明示的(0 'A'など)の場合、その値は単にDEFAULTに従います。ただし、値を式で計算する場合は、角括弧()で囲む必要があります。 SQLiteには多数の関数があり、そのうちの5つは日付と時刻関数です。これらは、日付、時間、日時、ユリウス通日とのstrftimeです。日時この例/溶液のために選択されたものの
いずれ日時又はのstrftimeは、使用することができます。だから我々はまだ... DEFAULT (datetime(<argumnets>))
を持っていない。
datetimeの構文はdatetime(timestring, modifier, modifier, ...)
です。タイムストリングは時間です(許可された日付を含める)。 nowは、現在の日時に基づいてタイム・タイムストリングを生成します。しかし、それはUTCです。 ローカルタイムモディファイアは、現地時間に合わせて時間を変更します(タイムスケールがUTCで、予期しない結果がの場合は、)。
さらに、より詳細な情報はこちらSQL As Understood By SQLite - Date And Time Functions
を見つけることができますが、エミュレータで特定の時間のために挿入されていた値の例を与えることができますか?あなたのエミュレータはどのタイムゾーンに設定されていますか? (つまり、あなたの問題は[this]ではありません(http://stackoverflow.com/questions/381371/sqlite-current-timestamp-is-in-gmt-not-the-timezone-of-the-machine )?) –