2013-03-18 34 views
19

SQLiteで、現在のインスタンスの日付と時刻を保存する日付のフィールドが1つあるテーブルを作成したいとします。どのデータ型を使用する必要がありますか?SQLiteデータベースに現在の日付と時刻を挿入する

「タイムスタンプ」を使用する予定です。現在のタイムスタンプ値をフィールドに挿入する方法は?また、この日付フィールドのコンテンツ値を書き込む方法は?

答えて

19
INSERT INTO Date (LastModifiedTime) VALUES(DateTime('now')) 

この詳細については、siteを参照してください。

INSERT INTO Date (LastModifiedTime) VALUES(CURRENT_TIMESTAMP) 

のSQLiteのデフォルトdata type for dates/timesTEXTです:

+0

これは現在のタイムスタンプの挿入値ですか? –

+0

はい、DateTime( 'now')は現在のタイムスタンプを返します – Premsuraj

37

SQLiteはCURRENT_DATECURRENT_TIME、およびCURRENT_TIMESTAMP標準のSQL変数をサポートしています。

ContentValuesは、一般的なSQL式、唯一の固定値を使用することはできませんので、あなたはJavaで現在の時刻を読み取ることがあります:私は、タイムスタンプ私のアプリで多くを使用してい

cv.put("LastModifiedTime", 
     new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); 
+0

最終行のコンストラクタDate()を解決できません。 –

+1

@KalaJ [Date()](http://developer.android.com/reference/java /util/Date.html#Date%28%29)が存在します。 –

+0

それを考え出した。それはJava.Utilsであり、Java.Sql.Dateではありませんでした。ありがとう!あなたの投稿が助けになりました:D –

0

。私にとってタイムスタンプを保持する最善の方法は、ミリ秒単位で変換することです。その後、どのロケールにも簡単に変換できます。

現在の時刻が必要な場合は、System.currentTimeMillis()を使用します。 コンテンツの値は、次のように使いやすいです:

ContentValues ins_reminder = new ContentValues(); 
ins_reminder.put("REMIND_TIMESTAMP", System.currentTimeMillis()); 
関連する問題