2017-03-17 16 views
0

私は今I'mmがはミリ秒

values.put(KEY_DRIVER_STAT_DAT, DateTime.now().getMillis()); 

どのようにすることができますようKEY_DRIVER_STAT_DAT列のデータを挿入するNumericタイプ

KEY_DRIVER_STAT_DAT + " NUBMERIC" 

として定義された日付列を持つSQLiteの内のテーブルを持っているとして格納されたSQLiteで日付を比較しますKEY_DRIVER_STAT_DATCurrent dateの間にあるこのテーブルからレコードを取得しますか?

+0

なぜ同じことを達成するためにsqliteのタイムスタンプまたは日付関数を使用しないでください? – Geek

答えて

0

ミリ秒単位で日付を扱うのは難しいです。 millisecondの値を日付として使用してレコードを挿入するときは、現在の値を挿入します。開始日(00:00時)から終了時(23:59時)までの期間内にあるすべてのレコードを検索する必要があります。この例を見てみましょう:

/*Suppose your DateTime is Joda's DateTime class*/ 
import java.util.*; 
import org.joda.time.*; 

// Two functions to help retrive start and end of date 
public static DateTime getStart(DateTime date) { 
    return new DateTime(date.year().get(), date.monthOfYear().get(), date.dayOfMonth().get(), 0, 0);  
} 
public static DateTime getEnd(DateTime date) { 
    return new DateTime(date.year().get(), date.monthOfYear().get(), date.dayOfMonth().get(), 23, 59); 
} 

// Code to make clause and parameters for select-statement 

DateTime now = DateTime.now(); 
DateTime start = getStart(now); 
DateTime end = getEnd(now); 
String yourClause = "KEY_DRIVER_STAT_DAT >= ? AND KEY_DRIVER_STAT_DAT <= ?"; 
String[] params = new String[] {String.valueOf(start.getMillis()), String.valueOf(end.getMillis())}; 
System.out.println("clause: " + yourClause); 
System.out.println("parameters: " + Arrays.toString(params));