1

データベースに単純なテーブルがあります。

CREATE TABLE [InformacjeZDziekanatu] (
  [_id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
  [DataWstawienia] DATE NOT NULL, 
  [DataModyfikacji] DATE NOT NULL, 
  [Tresc] VARCHAR2 NOT NULL);

私のアプリケーションでは、DataWstawienia列の値を取得するだけです。私はそのような方法を使用しています:

try {
    ResultSet result = stat.executeQuery("select * from InformacjeZDziekanatu order by _id desc limit 5");
    int id;
    Date dataWst;
    Date dataMod;
    String tresc;               

    for(int j = 0 ; j < 5 ; j++) {
            result.next();
            Object[] lista = new Object[4];
            id = result.getInt("_id");
            dataWst = result.getDate("DataWstawienia");
            dataMod = result.getDate("DataModyfikacji");
            tresc = result.getString("Tresc");
            lista[0] = id;
            lista[1] = dataWst;
            lista[2] = dataMod;
            lista[3] = tresc;
            dane[j] = lista;

    }
}

列のすべての日付DataWstawieniaは今日の日付ですが、上記のこの方法を使用すると、常に 1970-01-01 の日付になります。

私は何を間違えましたか?

4

1 に答える 1

1

SQLIte には DATE データ型がありません。日付は、整数 (Unix エポックが一般的であるための秒数) または ISO 8601 時間 (例: 2013-10-01T12:12:12) として保存する必要があります。DATESQLiteスキーマで言うと、値を文字列として保存します。dateWstタイプをtoに変更するソリューションは、String日付を内部日付タイプではなく文字列として保存しているという事実を認めています。

于 2013-10-07T04:17:15.073 に答える