Как получить значение даты из SQLite в java

У меня есть простая таблица в моей базе данных:

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 все время.

Что я сделал не так?

1 ответ

SQLIte не имеет типа данных DATE. Даты должны либо храниться как целые числа (количество секунд с момента появления Unix Epoch), либо как ISO 8601 раз (например, 2013-10-01T12: 12: 12). Если вы укажете DATE в своей схеме SQLite, вы сохраните значения в виде строк. Ваше решение об изменении типа dateWst на String подтверждает тот факт, что вы сохраняете даты как строки, а не как внутренний тип даты.

licensed under cc by-sa 3.0 with attribution.