2016-06-22 4 views
0

ここにアンドロイド開発のための新しい私の疑問ですsqliteのテキストとしてdatetimeフィールドを保存しましたどのようにこれらのレコードの中で最大のdatetimeを取得する方法私はこれを達成することができますか?試みたが、ここで私は私がこれまでにしようとしているものを投稿してみましょう結果を得ていないのです。ここでsqlite androidで最大のDateTimeを取得するには?

はSqliteをクエリです:

public String DateTime(){ 
     String str=""; 
     Cursor cursor = db.query(CustomerModel.CustomerTable , new String [] {"MAX(" + CustomerModel.Customer_LastMofiedFlag +")"}, null, null, null, null, null); 
     if(cursor.moveToFirst()) { // to move the cursor to first record 
      int index = cursor.getColumnIndex(CustomerModel.Customer_LastMofiedFlag); 
      str = cursor.getString(index); 
     } mcontext.getContentResolver().notifyChange(DB_Timetracker, null); 
     return str; 
    } 

は、テキスト形式で最大の日時を取得することが可能です日時を保存していますformat in yyyy-MM-dd HH:mm:ssどうすればこれを実現できますか?

+0

日付をテキストとして保存しないでください。テキストの日付が不正確で問題が発生しやすいためです。最善の方法は、エポックタイム(https://en.wikipedia.org/wiki/Unix_time)である 'System.currentTimeMillis();'を使って 'long'として保存することです。数値を取得した後は、SQLliteで 'max/min'クエリを使用するのは簡単です。https://www.sqlite.org/lang_aggfunc.html – Budius

+0

sqliteは長い形式をサポートしていますか? –

+0

バイト、整数、または長時間の問題ではありません。それは多面的な神と全く同じです。 https://www.sqlite.org/datatype3.html(SQLliteの 'INTEGER'は任意のサイズの整数になります) – Budius

答えて

1

おそらく長い形式で保存しようとすることはできますか?

+0

sqliteはlong形式をサポートしています –

+0

INTEGERを使用します - これは8ビットで、十分な –

+0

文字列を長時間変換する間に間違った値を取得しています –

関連する問題