Как получить значение даты из 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.