レコードが作成された後、アプリケーションでNSDateとして取得して保存できるときに、テーブルにタイムスタンプを自動的に保存する手段がsqliteにありますか?iphone NSdateを使用したsqlite datetimeデータ型?
代わりに、私のiPhoneアプリに現在の時刻でNSdateオブジェクトを作成し、それをデータベースに挿入する必要があります。もしそうなら?その列のデータ型はどのような列にする必要がありますか? DATETIME?
レコードが作成された後、アプリケーションでNSDateとして取得して保存できるときに、テーブルにタイムスタンプを自動的に保存する手段がsqliteにありますか?iphone NSdateを使用したsqlite datetimeデータ型?
代わりに、私のiPhoneアプリに現在の時刻でNSdateオブジェクトを作成し、それをデータベースに挿入する必要があります。もしそうなら?その列のデータ型はどのような列にする必要がありますか? DATETIME?
SQLiteで使用できるTIMESTAMP
データ型がないため、INSERT
を手動で挿入する必要があります。私は、データベース内のINTEGER
データ型を使用し、そのように私のNSDate
を変換:
sqlite3_bind_double(insert_statement, 1, [myDate timeIntervalSince1970]);
そしてDBの外にそれを取り戻すために:
myDate = [NSDate dateWithTimeIntervalSince1970:sqlite3_column_double(select_statement, 1)];
は、私は何をすることになりますた(使用sqliteののCURRENT_TIMESTAMPです次のようなものです:2009-06-16 12:11:24)。これを行うにはちょうど次に、このようにSQLクエリを使用
Data type: "DATETIME"
Allow null: NO
Default value: CURRENT_TIMESTAMP
にごqsliteテーブルの行タイプを設定します。それは自動的に現在時刻の値を取得するように
@"INSERT INTO 'scores' ('one', 'two', 'three') VALUES ('%d', '%d', '%d')"
は、日付を無視します。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //this is the sqlite's format
NSDate *date = [formatter dateFromString:score.datetime];
、今あなたがNSDateオブジェクトとしてその日付を持っている:そして、あなたはこのようNSDateFormatterを使用することができますNSDateにこれを変換する
。これはfoo.currentDateに浮動小数点値を挿入することになる
insert into foo(currentDate) values (julianday('now'));
:ちょうど私たちは、私は同じように、sqliteのユリウス通日()関数を使用したい:)
を割り当てられNSDateFormatterを解放することを忘れないでください。
また、この質問/回答のいくつかの詳細が役に立つかもしれません。
私は怖い、これは間違っている、datetimeデータ型は、SQLiteのであります。 – Thiru