0
receivedDate="25022013";
receivedTime="150526";

receivedTime=receivedTime.trim();
String HH = receivedTime.substring(0, 2);
String MM = receivedTime.substring(2, 4);
String SS = receivedTime.substring(4, 6);

receivedTime="date('"+HH+":"+MM+":"+SS+"',strftime('%H:%M:%S'))";

receivedDate=receivedDate.trim();
String dd = receivedDate.substring(0, 2);
String mm = receivedDate.substring(2, 4);
String yyyy = "20"+receivedDate.substring(4,6);

receivedDate="date('"+yyyy+"-"+mm+"-"+dd+"',strftime('%Y-%m-%d'))";

ContentValues values=new ContentValues();
values.put(DBConstants.TIME,receivedTime);
values.put(DBConstants.DATE, receivedDate);

masterDataDB.insert(DBConstants.MASTER_DATA_TABLE, null, values);

この日付と時刻は、TEXT タイプのフィールドに挿入されます。Sqliteブラウザでストアデータを見ると、以下のようにストアされています。

時間フィールド-> date('15:20:16',strftime('%H:%M:%S'))

日付フィールド-> date('2013-02-14',strftime('%Y-%m-%d'))

正しく保管されていますか?日付関数を使用して日付と時刻を選択すると、日付が正しく返されますか?

4

2 に答える 2

2

構築している SQL 関数は実行されませんが、文字列として保存されます。日付は、書式設定された文字列または long (UNIX エポックからの時間) として保存できます。

つまり、文字列を格納するのではなくdate('15:20:16',strftime('%H:%M:%S'))、単純に15:20:16.

于 2013-02-26T07:32:56.457 に答える
0

データベースに long 値として格納し、適切なクラス (Calendar、Date、DateFormat) を使用してコードで操作する必要があります。

于 2013-02-26T07:27:00.823 に答える